Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1622 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème gestion des erreurs

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème gestion des erreurs

n°1885420
D_AmOn
Posté le 17-05-2009 à 18:36:16  profilanswer
 

Bonjour, je fais actuellement un espace membre pour mon site ; pour cela j'ai suivi un tuto à ce lien :
http://www.siteduzero.com/tutoriel [...] mails.html
 
J'ai un problème concernant la gestion des erreurs.
 
Voici mon code :
 

Code :
  1. Code : PHP
  2. if(isset($_SESSION['erreurs']) and $_SESSION['erreurs'] > 0)
  3. {
  4. if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';
  5. else $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
  6. ?>
  7. <h1>Inscription non validée.</h1>
  8. <p>Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons
  9. pas pu valider votre inscription, en voici les raisons :<br/>
  10. <?php
  11. echo $_SESSION['nb_erreurs'];
  12. echo $_SESSION['pseudo_info'];
  13. echo $_SESSION['mdp_info'];
  14. echo $_SESSION['mdp_verif_info'];
  15. echo $_SESSION['mail_info'];
  16. echo $_SESSION['mail_verif_info'];
  17. echo $_SESSION['date_naissance_info'];
  18. echo $_SESSION['qcm_info'];
  19. echo $_SESSION['captcha_info'];
  20. if(isset($sqlbug) and $sqlbug !== true)
  21. {
  22. ?>
  23. Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. (Attention, que vous
  24. l'ayez correctement remplie ou non, la partie sur la charte et l'image est à refaire intégralement.)</p>
  25. <div class="center"><a href="inscription.php">Retour</a></div>
  26. <?php
  27. }
  28. else
  29. {
  30. ?>
  31. Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
  32. il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>
  33. <div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="../contact.php">Contactez-nous</a></div>
  34. <?php
  35. }
  36. }
  37. ?>


 
 
 
Lorsque l'utilisateur qui souhaite s'inscrire fait une erreur de saisie, cette erreur lui ait indiquée par :
 

Code :
  1. Code : PHP
  2. <h1>Inscription non validée.</h1>
  3. <p>Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons
  4. pas pu valider votre inscription, en voici les raisons :<br/>
  5. <?php
  6. echo $_SESSION['nb_erreurs'];
  7. echo $_SESSION['pseudo_info'];
  8. echo $_SESSION['mdp_info'];
  9. echo $_SESSION['mdp_verif_info'];
  10. echo $_SESSION['mail_info'];
  11. echo $_SESSION['mail_verif_info'];
  12. echo $_SESSION['date_naissance_info'];
  13. echo $_SESSION['qcm_info'];
  14. echo $_SESSION['captcha_info'];
  15. if(isset($sqlbug) and $sqlbug !== true)
  16. {
  17. ?>
  18. Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. (Attention, que vous
  19. l'ayez correctement remplie ou non, la partie sur la charte et l'image est à refaire intégralement.)</p>
  20. <div class="center"><a href="inscription.php">Retour</a></div>
  21. <?php
  22. }


 
Et on lui propose de revenir à la page précédente pour la corriger. Sauf que en + de cette erreur, PHP m'affiche le "esle" !! :
 

Code :
  1. Code : PHP
  2. else
  3. {
  4. ?>
  5. Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
  6. il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>
  7. <div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="../contact.php">Contactez-nous</a></div>
  8. <?php
  9. }
  10. }
  11. ?>


 
 
Ce qui donne :
 
Accueil => Inscription 2/2
Inscription non validée.
 
Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons pas pu valider votre inscription, en voici les raisons :
Il y a eu 2 erreurs.
Votre mot de passe doit contenir au moins une majuscule.
Votre mot de passe de vérification doit contenir au moins une majuscule.
Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.
Retenter une inscription - Contactez-nous
 
 
 
alors qu'il ne devrait pas, puisque il n'y a aucun problème au niveau de la base de données.
 
Je ne comprends pas :(

mood
Publicité
Posté le 17-05-2009 à 18:36:16  profilanswer
 

n°1885440
billgatesa​nonym
Posté le 17-05-2009 à 19:57:44  profilanswer
 

Citation :

if(isset($sqlbug) and $sqlbug !== true)

Peut-être qu'il serait plus simple d'avoir

if($sqlbug != true)

C'est presque la même chose. La différence est que $sqlbug doit être initialisée au début de la page. D'ailleurs initialiser ses variables est généralement une bonne chose à faire.

n°1885803
Profil sup​primé
Posté le 18-05-2009 à 18:03:33  answer
 

euh, où est définie $sqlbug ? Il nous faut la partie du code où la variable est initialisée.
Et pourquoi stocker les erreurs dans des sessions :??:

n°1885810
masklinn
í dag viðrar vel til loftárása
Posté le 18-05-2009 à 18:32:41  profilanswer
 


Je dirais "pour créer une flashscope permettant de les afficher après une redirection", ce qui est utile dans certains cas bien particuliers (où l'on redirige même après une erreur sur un POST, par exemple)

Message cité 1 fois
Message édité par masklinn le 18-05-2009 à 18:34:06

---------------
I've never understood the compulsion to use Web technologies minus the Web's security and deployment models. It seems a bit like throwing the orange away and eating the peel. — @ justinschuh‬
n°1886194
Profil sup​primé
Posté le 19-05-2009 à 17:25:51  answer
 

masklinn a écrit :


Je dirais "pour créer une flashscope permettant de les afficher après une redirection", ce qui est utile dans certains cas bien particuliers (où l'on redirige même après une erreur sur un POST, par exemple)

:jap:

n°1888371
D_AmOn
Posté le 27-05-2009 à 09:51:14  profilanswer
 

Salut tout le monde, désolé de ne répondre que maintenant, j'étais partie en vacances =p Je vais regarder tout ce que vous m'avez écrit, et je vais voir si ça règle mon problème ou pas.

n°1889190
D_AmOn
Posté le 28-05-2009 à 21:53:03  profilanswer
 


 
 
$sqlbug est définie ici :
 

Code :
  1. if($_SESSION['erreurs'] == 0)
  2. {
  3. $sqlbug = true; // Plantage SQL.
  4. $_SESSION['erreurs']++;
  5. }


 
 
 
Je mets le code en entier :
 

Code :
  1. <!--Test des erreurs et envoi-->
  2.  <?php
  3.  if($_SESSION['erreurs'] == 0)
  4.  {
  5.   $insertion = "INSERT INTO membres VALUES(NULL, '".mysql_real_escape_string($pseudo)."',
  6.   '".md5($mdp)."', '".mysql_real_escape_string($mail)."',
  7.   ".time().", '".mysql_real_escape_string($date_naissance)."',
  8.   '', '',
  9.   '', '',
  10.   '', '',
  11.   '', '',
  12.   ".time().", 0)";
  13.   if(mysql_query($insertion))
  14.   {
  15.    $queries++;
  16.    clearSession();
  17.    $_SESSION['inscrit'] = $pseudo;
  18.    /*informe qu'il s'est déjà inscrit s'il actualise, si son navigateur
  19.    bugue avant l'affichage de la page et qu'il recharge la page, etc.*/
  20.  ?>
  21.    <h1>Inscription validée !</h1>
  22.    <p>Vous pouvez dès maintenant vous connecter avec vos identifiants <a href="connexion.php">ici</a>.
  23.    </p>
  24.  <?php
  25.   }
  26.   else
  27.   {
  28.    if(stripos(mysql_error(), $_SESSION['form_pseudo']) !== FALSE) // Recherche du pseudo
  29.    {
  30.     unset($_SESSION['form_pseudo']);
  31.     $_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris.</span><br/>';
  32.     $_SESSION['erreurs']++;
  33.    }
  34.    if($_SESSION['erreurs'] == 0)
  35.    {
  36.     $sqlbug = true; // Plantage SQL.
  37.     $_SESSION['erreurs']++;
  38.    }
  39.   }
  40.  }
  41.  if(isset($_SESSION['erreurs']) and $_SESSION['erreurs'] > 0)
  42.  {
  43.   if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<span class="erreur">il y a eu 1 erreur.</span><br/>';
  44.   else $_SESSION['nb_erreurs'] = '<span class="erreur">il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
  45.  ?>
  46.          <div class="error">
  47.   <h1>Inscription non validée</h1>
  48.   <p>Une ou plusieurs erreurs sont survenues :<br /><br />
  49.    <?php
  50.    echo $_SESSION['pseudo_info'];
  51.    echo $_SESSION['mdp_info'];
  52.    echo $_SESSION['mdp_verif_info'];
  53.    echo $_SESSION['mail_info'];
  54.    echo $_SESSION['mail_verif_info'];
  55.    echo $_SESSION['date_naissance_info'];
  56.    echo $_SESSION['captcha_info'];
  57.    echo '<br />';
  58.   if(isset($sqlbug) and $sqlbug !== true)
  59.   {
  60.    ?>
  61.    Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. (Attention, que vous
  62.    l'ayez correctement remplie ou non, la partie sur la charte et l'image est à refaire intégralement.)</p>
  63.    <div class="center"><a href="inscription.php">Retour</a></div></div>
  64.   <?php
  65.   }
  66.   else
  67.   {
  68.   ?>
  69.    Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
  70.    il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>
  71.    <div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="../contact.php">Contactez-nous</a></div></div>
  72.   <?php
  73.   }
  74.  }
  75.   ?>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème gestion des erreurs

 

Sujets relatifs
Probleme: Newsletter HTML passe en Spam...thread problème
Problème interprétation entre php et fpdfProblème avec un menu déroulant qui s'ouvre au chargement
[Besoin d'aide]: Problème de jQueryProblème d'insertion en table
Problème lors de la création d'une application RPCProblème vérification format champs
Probleme avec gestion des erreurs en vbscriptJSP : problème avec le mécanisme de gestion des erreurs
Plus de sujets relatifs à : Problème gestion des erreurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR