Tom's Guide > Forum > Programmation > [Résolu] Petit souci dans mon code PHP

[Résolu] Petit souci dans mon code PHP

Forum Programmation : [Résolu] Petit souci dans mon code PHP

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

Code :
  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. else
  94. {
  95. ?>
  96. <form method="post" action="form_inscription.php">
  97.         <label class="formulaire_label" for="login">Login :</label>
  98.         <input class="formulaire_champ" type="text" name="login" id="login" /><br />
  99.         <label class="formulaire_label" for="pass1">Password :</label>
  100.         <input class="formulaire_champ" type="password" name="pass1" id="pass1" /><br />
  101.         <label class="formulaire_label" for="pass2">Password <span style="font-size: 10px;">confirmation</span> :</label>
  102.         <input class="formulaire_champ" type="password" name="pass2" id="pass2" /><br />
  103.         <label class="formulaire_label" for="email1">Email* :</label>
  104.         <input class="formulaire_champ" type="texte" name="email1" id="email1" /><br />
  105.         <label class="formulaire_label" for="email2">Email <span style="font-size: 10px;">confirmation</span> :</label>
  106.         <input class="formulaire_champ" type="texte" name="email2" id="email2" /><br />
  107.         <input class="champ_case" type="checkbox" name="conditions" id="conditions" />
  108.         <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 />
  109.         <input class="formulaire_bouton" type="submit" value="S' inscrire" /><br /><br />
  110.         <span class="texte1" style="color: gray;">* Veillez %u0430 indiquer une adresse e-mail valide. Elle sera utilis%u0439e pour valider votre compte.</span>
  111. </form>
  112. <?php
  113. }
  114. ?>



Merci d'avance :)


Message édité par fb417508 le 28-09-2007 à 15:59:10
------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

salut, il y a un message d'erreur?

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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

------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Répondre à fb417508

:)
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

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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

------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Répondre à fb417508

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 :))

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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

 

Merci pour ton soutien :)


Message édité par fb417508 le 27-09-2007 à 09:35:30
------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Répondre à fb417508

modifie cette ligne:

Code :
  1. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));


par celle la:

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


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

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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


Message édité par fb417508 le 27-09-2007 à 19:14:00
------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Répondre à fb417508

ahhh, c'était juste ca..., le souci n'était donc pas avec le if pour la longueur...
il suffit de rajouter la condition

Code :
  1. if (!empty ($_POST['login'])



Message édité par coca25 le 28-09-2007 à 15:50:49
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Ah oui parfait, ca marche :D
merci beaucoup :)

------------------------------ Mon site (en construction)
http://steamgames.o-n.fr
Répondre à fb417508

un petit résolu dans le titre peut etre!

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Tom's Guide > Forum > Programmation > [Résolu] Petit souci dans mon code PHP
Aller à :

Il y a 2452 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens