begin process at 2008 07 20 02:41:10
1 213 102 membres
25 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TUTO+SOURCE #2 : ESPACE MEMBRE SANS MYSQL


Information sur la source

Catégorie :Tutoriaux Niveau : Débutant Date de création : 13/02/2003 Date de mise à jour : 13/02/2003 14:49:18 Vu : 11 003

Note :
8,5 / 10 - par 6 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Bienvenue dans ce tutorial de création d'une zone membre sans MySQL.

Théoriquement, le copié-collé des sources marche très bien.
Attention, tous les fichiers doivent être placés dans un même dossier.


Découpage de ce tutorial

Partie #1 : Inscription du membre et configuration du script
Partie #2 : Construire la section réservé au membre
Partie #3 : Options réservées au membre + explications des fonctions PHP utilisés dans ce script


Cette partie est la partie #2.

Source

  • <?
  • /*
  • *
  • * --------------
  • * | ACTION 1 | (partie #2)
  • * --------------
  • *
  • *
  • * Fichier : connexion.php
  • *
  • * C'est le fichier par lequel votre membre se connecte à l'espace qui lui est réservé.
  • * S'il fournit des pseudo et mot de passe incorrect, il est automatiquement
  • * redirigé vers cette page.
  • *
  • *
  • * A mettre dans le fichier connexion.php : */ ?>
  • <?
  • /*
  • * Attention, ne laissez pas d'espace entre le haut de la page
  • * et le <?
  • *
  • */
  • include("configuration.php");
  • /*
  • * On récupère la valeur des variables passées dans le formulaire,
  • * tout en s'assurant que ces variables n'ont pas étés passées frauduleusement.
  • *
  • */
  • $pseudo = trim($HTTP_POST_VARS[pseudo]);
  • $clef = trim($HTTP_POST_VARS[clef]);
  • $validation = $HTTP_POST_VARS[validation];
  • /*
  • * Validation des paramètres passés par le formulaire. On vérifie que tous les
  • * champs sont remplis correctement, car l'internaute à de facheuses tendances
  • * à raconter n'importe quoi... En cas d'erreur, on lui demande de la corriger.
  • *
  • */
  • if($validation) {
  • if(empty($pseudo)) {
  • $erreur[pseudo] = 1;
  • } elseif(strlen($pseudo) > 20) {
  • $erreur[pseudo] = 2;
  • unset($pseudo,$clef);
  • }
  • if(empty($clef)) {
  • $erreur[clef] = 1;
  • } elseif(strlen($clef) > 20 || strlen($clef) < 6) {
  • $erreur[clef] = 2;
  • unset($clef);
  • }
  • }
  • /*
  • * On vérifie que le pseudo correspond bien avec le mot de passe enregistré dans le fichier membres.txt
  • *
  • */
  • $ok = 0;
  • if(!$erreur) {
  • $ok = vérification($pseudo,crypter($clef));
  • }
  • if(!$ok && $validation) {
  • unset($clef);
  • $erreur[clef] = 2;
  • }
  • /*
  • * On dirige l'internaute selon qu'il doive se connecter à l'espace membre ou y accéder
  • *
  • */
  • if($validation && !$erreur) {
  • /*
  • * Si le membre a entré un bon mot de passe
  • *
  • */
  • // On crypte le mot de passe via la fonction crypter() disponible dans le fichier de configuration
  • // afin d'empêcher sa lecture dans la barre d'adresses
  • $clef = crypter($clef);
  • // On envoie le membre vers la pccueil des membres
  • header("Location:membre.php?pseudo=$pseudo&clef=$clef");
  • } else {
  • /*
  • * Si l'internaute a entré un mauvais mot de passe ou ne s'est pas encore connecté
  • * On demande à l'internaute de remplir un formulaire avec ses pseudo et mot de passe
  • *
  • */
  • /*
  • * Faîtes une inclusion de page avec include() plutôt que laisser ce code html.
  • * C'est moins lourd et plus clair. Attention, si vous utilisez cette méthode, ne protégéz
  • * pas la page utilisée.
  • *
  • */
  • echo "<html>
  • <head>
  • <title>Section membre / Inscription</title>
  • </head>
  • <body>
  • Accès à la zone membre :<br><br>";
  • // On affiche les éventuelles erreurs détectées
  • if($erreur && $validation) {
  • echo "Merci de corriger les erreurs suivantes :<br>";
  • if($erreur[pseudo]) {
  • echo "- Vous n'avez pas donné de pseudo<br>";
  • }
  • switch($erreur[clef]) {
  • case 1 : echo "- Vous n'avez pas donné de mot de passe<br>"; break;
  • case 2 : echo "- Vous avez donné un mot de passe erroné<br>"; break;
  • }
  • }
  • echo "<form action='connexion.php' method='post'>
  • <input type='hidden' name='validation' value=1>
  • Pseudo : <input type='text' name='pseudo' style='border : 1px solid' size=15 value='$pseudo' maxlength=20><br>
  • Mot de passe : <input type='password' name='clef' style='border : 1px solid' size=15 value='$clef' maxlength=20><br><br>
  • <input type='submit' value='Connexion'>
  • </body>
  • </html>
  • ";
  • }
  • ?>
  • <?
  • /*
  • *
  • * --------------
  • * | ACTION 2 | (partie #2)
  • * --------------
  • *
  • * Fichier : membre.php
  • *
  • * Fichier type d'une page réservée au membre. Elle contient l'architecture d'une telle page
  • * et quelques explications.
  • *
  • * Par défaut, cette page est la page d'accueil de l'espace membre
  • *
  • * A mettre dans le fichier membre.php : */ ?>
  • <?
  • /*
  • * Attention, ne laissez pas d'espace entre le haut de la page
  • * et le <?
  • *
  • * Toutes les pages de l'espace membre doivent être construites de cette manière
  • * afin qu'elles soient protégées contre toute intrusion extérieure aux membres
  • *
  • */
  • include("configuration.php");
  • if(vérification($pseudo,$clef)) { // On vérifie le pseudo et le mot de passe
  • /*
  • * Si on est ici, c'est que le pseudo et le mot de passe correspondent
  • *
  • */
  • cache(); // On empêche l'insertion de la page dans le cache du navigateur
  • /*
  • * On est dans l'espace membre. C'est ici que les membres peuvent accéder
  • * à tout ce qu'il leur est réservé. Pour faire des liens entre les pages dans l'espace membre, faîtes :
  • * <a href='page.php?pseudo=".PSEUDO."&clef=".CLEF."'>Lien</a> comme montré ci-dessous.
  • *
  • */
  • // Contenu de la page de l'espace membre
  • echo "<html>
  • <head>
  • <title>Espace membre</title>
  • </head>
  • <body>
  • Votre pseudonyme est ".PSEUDO."<br><br><a href='membre.php?pseudo=".PSEUDO."&clef=".CLEF."'>Exemple de lien dans l'espace membre</a>
  • </body>
  • </html>";
  • /*
  • * Attention, ne faîtes pas d'inclusions de fichiers non protégés par le système ci-dessus avec include()
  • * ou require() car n'importe qui pourrait alors y avoir accès.
  • *
  • * Si vous ne protégez pas ces fichiers avec le script PHP, vous pouvez toujours les cacher avec un fichier .htaccess
  • * de la même façon qu'est caché le fichier membres.txt. Cela marche aussi bien et c'est même mieux.
  • *
  • */
  • } else { // Mauvais mot de passe ou pseudo...
  • // On redirige le visiteur sur la page de connexion puisque
  • // le pseudo et le mot de passe ne correspondent pas
  • header("Location: connexion.php");
  • }
  • ?>
<?

/*
 *
 * --------------
 * |  ACTION 1  | (partie #2)
 * --------------
 *
 *
 * Fichier : connexion.php
 *
 * C'est le fichier par lequel votre membre se connecte à l'espace qui lui est réservé.
 * S'il fournit des pseudo et mot de passe incorrect, il est automatiquement
 * redirigé vers cette page.
 * 
 *
 * A mettre dans le fichier connexion.php : */ ?>




<?
/*
 * Attention, ne laissez pas d'espace entre le haut de la page
 *  et le <?
 *
 */

include("configuration.php");

/*
 * On récupère la valeur des variables passées dans le formulaire,
 * tout en s'assurant que ces variables n'ont pas étés passées frauduleusement.
 *
 */

$pseudo = trim($HTTP_POST_VARS[pseudo]);
$clef = trim($HTTP_POST_VARS[clef]);
$validation = $HTTP_POST_VARS[validation];

/*
 * Validation des paramètres passés par le formulaire. On vérifie que tous les
 * champs sont remplis correctement, car l'internaute à de facheuses tendances
 * à raconter n'importe quoi... En cas d'erreur, on lui demande de la corriger.
 *
 */

if($validation) {

if(empty($pseudo)) {
$erreur[pseudo] = 1;
} elseif(strlen($pseudo) > 20) {
$erreur[pseudo] = 2;
unset($pseudo,$clef);
}

if(empty($clef)) {
$erreur[clef] = 1;
} elseif(strlen($clef) > 20 || strlen($clef) < 6) {
$erreur[clef] = 2;
unset($clef);
}

}

/*
 * On vérifie que le pseudo correspond bien avec le mot de passe enregistré dans le fichier membres.txt
 *
 */

$ok = 0;

if(!$erreur) {
$ok = vérification($pseudo,crypter($clef));
}

if(!$ok && $validation) {
unset($clef);
$erreur[clef] = 2;
}

/*
 * On dirige l'internaute selon qu'il doive se connecter à l'espace membre ou y accéder
 *
 */

if($validation && !$erreur) {

/*
 * Si le membre a entré un bon mot de passe
 *
 */

// On crypte le mot de passe via la fonction crypter() disponible dans le fichier de configuration
// afin d'empêcher sa lecture dans la barre d'adresses

$clef = crypter($clef);

// On envoie le membre vers la pccueil des membres

header("Location:membre.php?pseudo=$pseudo&clef=$clef");

} else {

/*
 * Si l'internaute a entré un mauvais mot de passe ou ne s'est pas encore connecté
 * On demande à l'internaute de remplir un formulaire avec ses pseudo et mot de passe
 *
 */

/*
 * Faîtes une inclusion de page avec include() plutôt que laisser ce code html.
 * C'est moins lourd et plus clair. Attention, si vous utilisez cette méthode, ne protégéz
 * pas la page utilisée.
 *
 */

echo "<html>
<head>
<title>Section membre / Inscription</title>
</head>
<body>
Accès à la zone membre :<br><br>";

// On affiche les éventuelles erreurs détectées

if($erreur && $validation) {


echo "Merci de corriger les erreurs suivantes :<br>";

if($erreur[pseudo]) {
echo "- Vous n'avez pas donné de pseudo<br>";
}
switch($erreur[clef]) {
case 1 : echo "- Vous n'avez pas donné de mot de passe<br>"; break;
case 2 : echo "- Vous avez donné un mot de passe erroné<br>"; break;
}

}

echo "<form action='connexion.php' method='post'>
<input type='hidden' name='validation' value=1>
Pseudo : <input type='text' name='pseudo' style='border : 1px solid' size=15 value='$pseudo' maxlength=20><br>
Mot de passe : <input type='password' name='clef' style='border : 1px solid' size=15 value='$clef' maxlength=20><br><br>

<input type='submit' value='Connexion'>
</body>
</html>
";


}

?>




<?

/*
 *
 * --------------
 * |  ACTION 2  | (partie #2)
 * --------------
 * 
 * Fichier : membre.php
 * 
 * Fichier type d'une page réservée au membre. Elle contient l'architecture d'une telle page
 * et quelques explications.
 *
 * Par défaut, cette page est la page d'accueil de l'espace membre
 *
 * A mettre dans le fichier membre.php : */ ?>



<?
/*
 * Attention, ne laissez pas d'espace entre le haut de la page
 *  et le <?
 *
 * Toutes les pages de l'espace membre doivent être construites de cette manière
 * afin qu'elles soient protégées contre toute intrusion extérieure aux membres
 *
 */

include("configuration.php");

if(vérification($pseudo,$clef)) { // On vérifie le pseudo et le mot de passe

/*
 * Si on est ici, c'est que le pseudo et le mot de passe correspondent
 *
 */

cache(); // On empêche l'insertion de la page dans le cache du navigateur

/*
 * On est dans l'espace membre. C'est ici que les membres peuvent accéder
 * à tout ce qu'il leur est réservé. Pour faire des liens entre les pages dans l'espace membre, faîtes :
 * <a href='page.php?pseudo=".PSEUDO."&clef=".CLEF."'>Lien</a> comme montré ci-dessous.
 *
 */

// Contenu de la page de l'espace membre

echo "<html>
<head>
<title>Espace membre</title>
</head>
<body>
Votre pseudonyme est ".PSEUDO."<br><br><a href='membre.php?pseudo=".PSEUDO."&clef=".CLEF."'>Exemple de lien dans l'espace membre</a>
</body>
</html>";

/*
 * Attention, ne faîtes pas d'inclusions de fichiers non protégés par le système ci-dessus avec include()
 * ou require() car n'importe qui pourrait alors y avoir accès.
 *
 * Si vous ne protégez pas ces fichiers avec le script PHP, vous pouvez toujours les cacher avec un fichier .htaccess
 * de la même façon qu'est caché le fichier membres.txt. Cela marche aussi bien et c'est même mieux.
 *
 */

} else { // Mauvais mot de passe ou pseudo...

// On redirige le visiteur sur la page de connexion puisque 
// le pseudo et le mot de passe ne correspondent pas

header("Location: connexion.php");

}
?>

Conclusion

Voilà, c'est tout pour la partie #2.
Théoriquement, votre membre est inscrit et peut naviguer dans son espace membre.
La partie 3 vous montrera comment le membre peut supprimer son compte.
Je vous expliquerai aussi les fonctions PHP que j'utilise dans ce script.
  • signaler à un administrateur
    Commentaire de EmilyRose le 24/03/2006 18:29:51

    je dois être nulle mais j'ai suivi les explications à la lettre, les utilisateurs peuvent s'inscrire sans problème, par contre, le login via inscription.php ne fonctionne pas ! Donc impossible d'accéder à son espace membre. J'ai certes modifié la source pour mon site mais j'ai ensuite essayé et rééssayé sans modif pour le même résultat..

  • signaler à un administrateur
    Commentaire de sami038 le 25/07/2006 10:29:00

    nn pa du tou c le script ké nul  !!!

    "
    include("configuration.php");
    "

    a oui et il est ou ????
    c sa ki cloche !

  • signaler à un administrateur
    Commentaire de AxeL364 le 29/09/2006 17:36:10

    sami038 : heuresement qu'il y a marqué PARTIE 2 :/

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS