Se connecter / S'enregistrer
Votre question

[Résolu] Petit souci dans mon code PHP

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
26 Septembre 2007 17:01:49

Bonjour, je suis en train de créer un script d'inscription sur mon site mais j'ai un petit souci, après avoir rempli tous les champs mon script s'arrête a la première condition qui vérifie la longueur du pseudo ... donc voila le script l'erreur se trouve dans le premier if mais je n'arrive pas a la trouver :S

Edit : Vous aurez plus de facilité a le lire sur ce lien : http://moonix.o-n.fr/scripttt.txt

  1. <?php
  2. if (isset($login))
  3. {
  4.  
  5. include("scripts/connect_mysql.php");
  6.  
  7. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  8. $pass1 = mysql_real_escape_string(htmlspecialchars($_POST['pass1']));
  9. $pass2 = mysql_real_escape_string(htmlspecialchars($_POST['pass2']));
  10. $email1 = mysql_real_escape_string(htmlspecialchars($_POST['email1']));
  11. $email2 = mysql_real_escape_string(htmlspecialchars($_POST['email2']));
  12. $conditions = mysql_real_escape_string(htmlspecialchars($_POST['conditions']));
  13.  
  14. if (strlen(trim($login)) >= 3 && strlen(trim($login))<=20)
  15. {
  16. $requete = mysql_query("SELECT login FROM membres WHERE login='" . $login . "'");
  17.  
  18. if (mysql_num_rows($requete) == 0)
  19. {
  20.  
  21. if ((strlen(trim($pass1))) > 3)
  22. {
  23.  
  24. if ($pass1 == $pass2)
  25. {
  26.  
  27. $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
  28. $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
  29.  
  30. $regex = '/^' . $atom . '+' .
  31. '(\.' . $atom . '+)*' .
  32. '@' .
  33. '(' . $domain . '{1,63}\.)+' .
  34.  
  35. $domain . '{2,63}$/i';
  36.  
  37. if (preg_match($regex, $email1))
  38. {
  39.  
  40. $requete = mysql_query("SELECT email FROM membres WHERE email='" . $email1 . "'");
  41.  
  42. if(mysql_num_rows($requete) == 0)
  43. {
  44.  
  45. if ($email1 == $email2)
  46. {
  47.  
  48. if (!empty($conditions))
  49. {
  50.  
  51. mysql_query("INSERT INTO membres VALUES ('', '" . $login . "', '" . $pass1 . "', '" . $email1 . "', '" . time() . "', '10', '1')");
  52.  
  53. mysql_close();
  54.  
  55. echo'<p style="font-weight: bold; color: green;">Inscription r%u0439ussie</p>';
  56. echo'<p style="font-weight: bold; color: green;">A pr%u0439sent vous pouvez vous connecter</p>';
  57.  
  58. mail('' . $email . '', 'Inscription sur Wiinga', 'Bonjour ' . $login . ' nous vous remercions d\'avoir pris le temps de vous inscrire.');
  59.  
  60. }
  61. else
  62. echo '<p style="font-weight: bold; color: red;">Erreur: Vous devez accepter les conditions g%u0439n%u0439rales</p>';
  63.  
  64. }
  65. else
  66. echo '<p style="font-weight: bold; color: red;">Erreur: La confirmation de votre email n\'a pas aboutie</p>';
  67.  
  68. }
  69. else
  70. echo '<p style="font-weight: bold; color: red;">Erreur: Votre email est d%u0439j%u0430 utilis%u0439 par un autre utilisateur</p>';
  71.  
  72. }
  73. else
  74. echo '<p style="font-weight: bold; color: red;">Erreur: L\'email que vous avec entr%u0439 n\'est pas valide</p>';
  75.  
  76. }
  77. else
  78. echo '<p style="font-weight: bold; color: red;">Erreur: La confirmation de votre mot de passe n\'a pas aboutie</p>';
  79.  
  80. }
  81. else
  82. echo '<p style="font-weight: bold; color: red;">Erreur: Votre mot de passe est trop court</p>';
  83.  
  84. }
  85. else
  86. echo '<p style="font-weight: bold; color: red;">Erreur: Votre login est d%u0439j%u0430 utilis%u0439 par un autre utilisateur</p>';
  87.  
  88. }
  89. else
  90. echo '<p style="font-weight: bold; color: red;">Erreur: Votre login est trop court ou trop long</p>';
  91.  
  92. }
  93.  
  94. else
  95. {
  96. ?>
  97.  
  98. <form method="post" action="form_inscription.php">
  99. <label class="formulaire_label" for="login">Login :</label>
  100. <input class="formulaire_champ" type="text" name="login" id="login" /><br />
  101. <label class="formulaire_label" for="pass1">Password :</label>
  102. <input class="formulaire_champ" type="password" name="pass1" id="pass1" /><br />
  103. <label class="formulaire_label" for="pass2">Password <span style="font-size: 10px;">confirmation</span> :</label>
  104. <input class="formulaire_champ" type="password" name="pass2" id="pass2" /><br />
  105. <label class="formulaire_label" for="email1">Email* :</label>
  106. <input class="formulaire_champ" type="texte" name="email1" id="email1" /><br />
  107. <label class="formulaire_label" for="email2">Email <span style="font-size: 10px;">confirmation</span> :</label>
  108. <input class="formulaire_champ" type="texte" name="email2" id="email2" /><br />
  109. <input class="champ_case" type="checkbox" name="conditions" id="conditions" />
  110. <label class="texte2" style="color: gray;" for="conditions">J'ai lu et accept%u0439 les <a class="texte_lien_rouge" style="font-size: 12px; " href="autres/conditions.php">conditions g%u0439n%u0439rales</a> de Moonix.fr</label><br /><br />
  111. <input class="formulaire_bouton" type="submit" value="S' inscrire" /><br /><br />
  112. <span class="texte1" style="color: gray;">* Veillez %u0430 indiquer une adresse e-mail valide. Elle sera utilis%u0439e pour valider votre compte.</span>
  113. </form>
  114.  
  115. <?php
  116. }
  117. ?>


Merci d'avance :) 

Autres pages sur : resolu petit souci code php

26 Septembre 2007 17:30:39

salut, il y a un message d'erreur?
26 Septembre 2007 18:15:01

Non juste la page qui se rafraichi et mon else qui correspond a "if (strlen(trim($login)) >= 3 && strlen(trim($login))<=20)" qui s'affiche :S
Contenus similaires
26 Septembre 2007 18:23:04

:) 
vu qu'on a pas le contenu de $login, ca va etre difficile de suivre...
met des echo, var_dump pour voir le contenu de tes variables...
sinon le if me parait bien construit
26 Septembre 2007 19:13:22

oui mais le contenu de $login se transmet par un post non ? ou alors j'ai raté quelque chose :S
PS : j'ai un peu modifié le code et maintenant il marche, mais dés qu'on arrive sur la page le script est directement exécuté donc il y a mon else qui s'affiche "Erreur: Votre login est trop court ou trop long" donc j'essaye d' y remédier
Mon nouveau code :
http://moonix.o-n.fr/scriptttt.txt
27 Septembre 2007 01:29:14

bon, je viens d'apprendre une chose, tu ne peux pas utiliser mysql_real_escape_string() si tu n'es pas déjà connécté à une base mysql (jamais tombé sur ce cas :) )
27 Septembre 2007 09:29:14

Oui mais je suis déjà connecté a ma bdd avec l'include :
--> include("scripts/connect_mysql.php");

Merci pour ton soutien :) 
27 Septembre 2007 13:23:01

modifie cette ligne:
  1. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));

par celle la:
  1. $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])) or die (mysql_error ());

à mon avis, ca te sortira une erreur...

27 Septembre 2007 19:12:59

Non aucune erreur l'inscription se passe très bien, mais le problème c'est que je ne sais pas quelle condition il faut utiliser pour que mon script ne s'exécute pas directement a l'ouverture de la page :S

Pour mieu comprendre voila la page en question :
http://moonix.o-n.fr/form_inscription.php
28 Septembre 2007 00:47:22

ahhh, c'était juste ca..., le souci n'était donc pas avec le if pour la longueur...
il suffit de rajouter la condition
  1. if (!empty ($_POST['login'])

28 Septembre 2007 15:44:28

Ah oui parfait, ca marche :D 
merci beaucoup :) 
28 Septembre 2007 15:51:07

un petit résolu dans le titre peut etre!
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