Se connecter / S'enregistrer
Votre question

Script inscription, connexion ! [PHP}

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
2 Septembre 2007 10:18:20

Salut les idnautes,
J'ai actuellement en projet de coder mon forum, et je me sert donc d'un tuto que jai trouver,
J'ai cependant quelque erreur,
L'inscription et la connexion ne fonctionne pas,
Pourriez-vous m'aider, je vous donne mes page :) 

  1. <?php
  2. //Cette fonction doit être appelée avant tout code html
  3.  
  4. //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
  5. $titre = "Index du forum";
  6. include("includes/debut.php");
  7. ?>
  8. <body>
  9. <div id="banniere"></div>
  10. <?php
  11. //Maintenant on se connecte à la base de données
  12. include("includes/connexion_bdd.php");
  13. ?>
  14. <div id="corps_forum">
  15. <a href ="./index.php">Index du forum</a>
  16.  
  17. <?php
  18. //On évite qu'un membre déjà connecté se retrouve ici !
  19. if (isset($_SESSION['pseudo']))
  20. {
  21. exit("<p>Désolé mais vous ne pouvez pas accéder à cette page</p>");
  22. }
  23. ?>
  24.  
  25.  
  26. <h1>Inscription 1/2</h1>
  27.  
  28. <form method="post" action="registerok.php" enctype="multipart/form-data">
  29.  
  30. <fieldset><legend>Identifiants</legend>
  31. <label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" /> (le pseudo doit contenir entre 3 et 15 caractères)<br />
  32. <label for="password">* Mot de Passe :</label><input type="password" name="password" id="password" /><br />
  33. <label for="confirm">* Confirmer le mot de passe :</label><input type="password" name="confirm" id="confirm" />
  34. </fieldset>
  35. <fieldset><legend>Contacts</legend>
  36. <label for="email">* Votre adresse E_Mail :</label><input type="text" name="email" id="email" /><br />
  37. <label for="msn">Votre adresse MSN :</label><input type="text" name="msn" id="msn" /><br />
  38. <label for="website">Votre site web :</label><input type="text" name="website" id="website" />
  39. </fieldset>
  40. <fieldset><legend>Informations supplémentaires</legend>
  41. <label for="localisation">Localisation :</label><input type="text" name="localisation" id="localisation" />
  42. </fieldset>
  43. <fieldset><legend>Profil sur le forum</legend>
  44. <label for="avatar">Choisissez votre avatar :</label><input type="file" name="avatar" id="avatar" />(Taille max : 10 ko)<br />
  45. <label for="signature">Signature :</label><textarea cols="40" rows="4" name="signature" id="signature">La signature est limitée à 200 caractères</textarea>
  46. </fieldset>
  47. <p>Les champs précédés d un * sont obligatoires</p>
  48. <p><input type="submit" value="S'inscrire" /></p></form>
  49. </h2>
  50. </div>
  51. </body>
  52. </html>





  1. <?php
  2. //Cette fonction doit être appelée avant tout code html
  3.  
  4.  
  5. //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
  6. $titre = "Index du forum";
  7. include("includes/debut.php");
  8. ?>
  9. <body>
  10. <div id="banniere"></div>
  11. <?php
  12. //Maintenant, on se connecte à la base de données
  13. include("includes/connexion_bdd.php");
  14.  
  15.  
  16.  
  17. $i = 0;
  18.  
  19. //Vérification du pseudo
  20. $nombrepseudo = mysql_result(mysql_query("SELECT COUNT(*) FROM forum_membres WHERE membre_pseudo = '".$_POST['pseudo']."'"), 0);
  21. if($nombrepseudo != 0)
  22. {
  23. $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
  24. $i++;
  25. }
  26. if (strlen($_POST['pseudo']) < 3 || strlen($_POST['pseudo']) > 15)
  27. {
  28. $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
  29. $i++;
  30. }
  31. //Vérification du mdp
  32. if ($_POST['password'] != $_POST['confirm'] || empty($_POST['confirm']) || empty($_POST['password']))
  33. {
  34. $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
  35. $i++;
  36. }
  37.  
  38.  
  39.  
  40. //Vérification de l'adresse email
  41.  
  42. //Il faut que l'adresse email n'ait jamais été utilisée
  43.  
  44. $nombremail = mysql_result(mysql_query("SELECT COUNT(*) FROM forum_membres WHERE membre_email = '".$_POST['email']."'"), 0);
  45.  
  46. if ($nombremail!= 0)
  47. {
  48. $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
  49. $i++;
  50. }
  51. //On vérifie la forme maintenant
  52. if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']) || empty($_POST['email']))
  53. {
  54. $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
  55. $i++;
  56. }
  57. //Vérification de l'adresse MSN
  58. if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['msn']) && !empty($_POST['msn']))
  59. {
  60. $msn_erreur = "Votre adresse MSN n'a pas un format valide";
  61. $i++;
  62. }
  63. //Vérification de la signature
  64. if (strlen($_POST['signature']) > 200)
  65. {
  66. $signature_erreur = "Votre signature est trop longue";
  67. $i++;
  68. }
  69.  
  70.  
  71. //Vérification de l'avatar :
  72. if (!empty($_FILES['avatar']['size']))
  73. {
  74. //On définit les variables :
  75. $maxsize = 10024; //Poid de l'image
  76. $maxwidth = 100; //Largeur de l'image
  77. $maxheight = 100; //Longueur de l'image
  78. $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
  79.  
  80. if ($_FILES['avatar']['error'] > 0)
  81. {
  82. $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
  83. }
  84. if ($_FILES['avatar']['size'] > $maxsize)
  85. {
  86. $i++;
  87. $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
  88. }
  89.  
  90. $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
  91. if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
  92. {
  93. $i++;
  94. $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
  95. }
  96.  
  97. $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
  98. if (!in_array($extension_upload,$extensions_valides) )
  99. {
  100. $i++;
  101. $avatar_erreur3 = "Extension de l'avatar incorrecte";
  102. }
  103. }
  104. ?>
  105. <div id="corps_forum">
  106. <a href ="./index.php">Index du forum</a> / <a href="./register.php">Inscription</a>
  107. <?php
  108. if ($i == 0) // Si i est vide, il n'y a pas d'erreur
  109. {
  110.  
  111. echo'<h1>Inscription terminée</h1>';
  112. echo'<p>Bienvenue '.$_POST['pseudo'].' vous êtes maintenant inscrit sur le forum</p>';
  113. echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>';
  114.  
  115. if (isset($_FILES['avatar']['size']))
  116. {
  117. //On déplace l'avatar
  118. $avatar = time();
  119. $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
  120. $avatar = "./images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
  121. move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
  122. }
  123.  
  124. //On vérifie que les champs ne continennent pas de html
  125. //Puis on crypte le mot de passe
  126. $temps = time();
  127. $signature = htmlspecialchars($_POST['signature'], ENT_QUOTES);
  128. $signature = nl2br($signature);
  129. $pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
  130. $email = htmlspecialchars($_POST['email'], ENT_QUOTES);
  131. $msn = htmlspecialchars($_POST['msn'], ENT_QUOTES);
  132. $website = htmlspecialchars($_POST['website'], ENT_QUOTES);
  133. $localisation = htmlspecialchars($_POST['localisation'], ENT_QUOTES);
  134. $pass = md5($_POST['password']);
  135.  
  136. //On balance le tout dans notre table
  137. mysql_query("
  138. INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email,
  139. membre_msn, membre_siteweb, membre_avatar,
  140. membre_signature, membre_localisation, membre_inscrit,
  141. membre_derniere_visite)
  142. VALUES ('".$pseudo."' , '".$pass."' , '".$email."' ,
  143. '".$msn."' , '".$website."' , '".$nomavatar."' ,
  144. '".$signature."' , '".$localisation."' , '".$temps."' ,
  145. '".$temps."' ) ");
  146.  
  147.  
  148. //Et on définit les variables de sessions
  149. $_SESSION['pseudo'] = $pseudo;
  150. $_SESSION['id'] = mysql_insert_id();
  151. $_SESSION['level'] = 1;
  152.  
  153. }
  154. else
  155. {
  156. echo'<h1>Inscription interrompue</h1>';
  157. echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>';
  158. echo'<p>'.$i.' erreur(s)</p>';
  159. echo'<p>'.$pseudo_erreur1.'</p>';
  160. echo'<p>'.$pseudo_erreur2.'</p>';
  161. echo'<p>'.$mdp_erreur.'</p>';
  162. echo'<p>'.$email_erreur1.'</p>';
  163. echo'<p>'.$email_erreur2.'</p>';
  164. echo'<p>'.$msn_erreur.'</p>';
  165. echo'<p>'.$signature_erreur.'</p>';
  166. echo'<p>'.$avatar_erreur.'</p>';
  167. echo'<p>'.$avatar_erreur1.'</p>';
  168. echo'<p>'.$avatar_erreur2.'</p>';
  169. echo'<p>'.$avatar_erreur3.'</p>';
  170.  
  171. echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>';
  172. }
  173. mysql_close();
  174. ?>
  175. </div>
  176. </body>
  177. </html>
  178.  
  179. <?
  180. //On déplace l'avatar
  181. $avatar = time();
  182. $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
  183. $avatar = "./images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
  184. move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
  185. ?>




Sa c'etait l'inscription

Et voila la connexion

  1. <?php
  2. //Cette fonction doit être placé avant le reste
  3.  
  4.  
  5. $titre = "Connexion";
  6. include("includes/debut.php");
  7. ?>
  8.  
  9. <div id="banniere"></div>
  10. <div id="corps_forum">
  11. <a href="./index.php">Index du forum</a>
  12.  
  13.  
  14. <?php
  15. //Par sécurité, on vérifie que le membre qui accède à cette page n'est pas déjà connecté
  16. if (isset($_SESSION['pseudo']))
  17. {
  18. exit("Désolé, mais vous ne pouvez pas accéder à cette page");
  19. }
  20. ?>
  21.  
  22.  
  23. <h1>Connexion</h1>
  24. <form method="post" action="connexionok.php">
  25. <fieldset>
  26. <legend>Connexion</legend>
  27. <p>
  28. <label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
  29. <label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /><br />
  30. </p>
  31. </fieldset>
  32. <p><input type="submit" value="Connexion" /></p></form>
  33. <a href="./register.php">Pas encore inscrit ?</a>
  34.  
  35. </div>
  36. </body>
  37. </html>
  38.  
  39. <label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" /><br />






  1. <?php
  2.  
  3.  
  4. // Message
  5.  
  6. if (empty($_POST['pseudo']) || empty($_POST['password']) ) //Oublie d'un champ
  7. {
  8. $message = '<p>une erreur s est produite pendant votre identification.
  9. Vous devez remplir tous les champs
  10. Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
  11. }
  12. else
  13. {
  14. //Acces interdit : le membre est déjà connecté
  15. if (isset($_SESSION['pseudo']))
  16. {
  17. $message ='<p>Désolé mais vous ne pouvez
  18. pas accéder à cette page</p>';
  19. }
  20. else // Autorisation ok : il reste à voir le mot de passe
  21. {
  22. include("includes/connexion_bdd.php");
  23.  
  24. //On enlève les balises html éventuelles
  25.  
  26. $pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
  27. $password = htmlspecialchars($_POST['password'], ENT_QUOTES);
  28.  
  29. $requete1 = mysql_query(' SELECT membre_mdp, membre_id, membre_rang
  30. FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" ')
  31. or die (mysql_error());
  32. $data1 = mysql_fetch_assoc($requete1);
  33.  
  34.  
  35. if ($data1['membre_mdp'] == md5($password)) // Acces OK !
  36. {
  37.  
  38. $_SESSION['pseudo'] = $pseudo;
  39. $_SESSION['level'] = $data1['membre_rang'];
  40. $_SESSION['id'] = $data1['membre_id'];
  41.  
  42. $message = '<p>Bienvenue '.$_SESSION['pseudo'].',
  43. vous êtes maintenant connecté!</p>
  44. <p>Cliquez <a href="./index.php">ici</a>
  45. pour revenir à la page d accueil</p>';
  46.  
  47. }
  48. else // Acces pas OK !
  49. {
  50. $message = '<p>Une erreur s est produite
  51. pendant votre identification.
  52. Le mot de passe ou le pseudo entré n est pas correcte.
  53. Cliquez <a href="./connexion.php">ici</a>
  54. pour revenir à la page précédente
  55. <br /><br />
  56. Cliquez <a href="./index.php">ici</a>
  57. pour revenir à la page d accueil</p>';
  58. }
  59. }
  60. }
  61. //Ici seulement on affiche la page
  62. include("includes/debut.php");
  63. ?>
  64. <div id="banniere"></div>
  65.  
  66.  
  67. <div id="corps_forum">
  68. <?php
  69. echo $message;
  70. ?>
  71. </div>
  72. </body>
  73. </html>
  74. <?
  75. if (isset($_POST['souvenir']))
  76. {
  77. $expire = time() + 365*24*3600;
  78. setcookie('pseudo', $_SESSION['pseudo'], $expire);
  79. }
  80. ?>


Autres pages sur : script inscription connexion php

a c 232 L Programmation
3 Septembre 2007 11:43:11

Salut,

J'ai pas envie de lire 1000 lignes, tu pourrais nous dire quelle erreur tu as, ce qui ne marche pas, etc...
C'est trop vague ce que tu dis.
3 Septembre 2007 14:24:51

Oui je sais,
C'est pas compliquez, je ne peux pas me connectez, sa me maque bonjour darkhos, vous etes connecté, sa me met une redirecction vers lindex, mais je ne suis pas co, ( c'est un comtpe creer par la bdd, puiske je ne peux pas minscririre)
Les erreur a linscription sont :
Edit, c'est reparé ;) 
Sauf la connexion
Contenus similaires
a c 232 L Programmation
3 Septembre 2007 19:32:16

Tu n'as aucun session_start(), comment veux-tu que ta session fonctionne ? :) 
4 Septembre 2007 13:24:52

Elle se trouve dans la page debut.php qui est inclue
a c 232 L Programmation
4 Septembre 2007 16:19:21

Bah dans le deuxième cas, tu fais ton session_start() après vérifier que les valeurs de session existent...
Le session_start() doit être la première ligne quasiment !
5 Septembre 2007 12:23:01

Voila, j'ai mis mon include de debut.php en 1ere ligne, mais toujour pas moyen de me connecter
a c 232 L Programmation
5 Septembre 2007 14:17:06

Essaie d'afficher les valeurs des variables de session pour voir si elles fonctionnent déjà.
5 Septembre 2007 15:36:35

Oui elle marche,
Quand je me connecte, sa afiche, Bonjour darkhos, vous etes connecter, et le code source est :
Bienvenue '.$_SESSION['pseudo'].',
vous êtes maintenant connecté!

Donc sa fonctionne
17 Décembre 2008 09:38:01

J'aurais besoin du code ci-dessus. Cependant j'aimerais savoir s'il fonctionne ou s'il contient encore des erreurs ?

Merci d'avance
17 Décembre 2008 10:28:46

Test par toi meme déja.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS