Formulaire de vérification par courriel - Apprendre-PHP.com

Rechercher
Anaska - Spécialiste des formations Open-Source

Formulaire de vérification par courriel

Par Tatayet -  3 reponses -  Le 25/03/2009 -  Flux RSS - 

Bonjour,

Je suis débutant en php. Je tatonne un peu en prennant d'un cours à l'autre pour faire mes propres essais.

Actuellement, j'ai un problème avec un formulaire de vérification que j'ai créé. Le voici:

Formulaire
<?php
mysql_connect("adresse", "utilisateur", "mot_de_passe");
mysql_select_db("table");
 
$courriel = $_POST['courriel'];
 
$base = mysql_query("SELECT courriel FROM clients") or die(mysql_error());
$donnees = mysql_fetch_array($base);
if (in_array($courriel, $donnees))
{
$resultat = "OUI<br />";
}
elseif ($courriel == "")
{
$resultat = "<br />";
}
else
{
$resultat = "NON<br />";
}
 
 
?>
<p>Courriel :</p>
<form action="verification.php" method="post">
<p>
<input type="text" name="courriel" /> <input type="submit" value="Valider" />
</p>
</form>
<p><?php echo $resultat ?></p>

Et malheureusement ça ne fonctionne pas très bien...

J'ai actuellement 4 enregistrements dans ma base MySQL. Quand je rentre le courriel du premier  enregistrement, il me répond "OUI", mais quand je teste les autres courriels, j'ai forcément "NON".

Et quand je remplace le "in_array" par un "while", par contre, ça fonctionne à peu près bien. Ca me donnait des résultats du style:

OUI

NON

NON

NON

ou

NON

NON

OUI

NON

 

Pouvez-vous m'orienter vers une solution?

Merci d'avance et bonne journée.

 

 

 

 

Réponses apportées à cette discussion

Par saturn1 -  Le 25/03/2009 - 

le problème c'est que mysql_fetch_array rend juste la première ligne de ton résultat mysql. Donc ton premier email.

 

Tu peux faire comme cela :

  1. <?php
  2.  
  3. $tab_email_de_la_table = array();
  4. //ta requete qui selectionne tes email
  5. while($a = mysql_fetch_assoc($tarequete))
  6. {
  7. $tab_email_de_la_table[] = $a['email'];
  8. }
  9.  
  10. if(in_array($courriel,$tab_email_de_la_table))
  11. //....
  12.  
  13. ?>

Bonne chance ;)

 

 

 
Par Tatayet -  Le 30/03/2009 - 

Formidable!

J'ai donc modifié mon script et ça fonctionne:

 

Formulaire corrigé 1
  1. <p>Entrez votre courriel utilis&eacute; lors de l'inscription pour v&eacute;rification:</p>
  2. <form action="verification.php" method="post">
  3. <p>
  4. <input type="text" name="courriel" /> <input type="submit" value="Valider" />
  5. </p>
  6. </form>
  7. <?php
  8. mysql_connect("TOPSECRETNASA", "TOPSECRETNASA", "TOPSECRETNASA");
  9. mysql_select_db("TOPSECRETNASA");
  10.  
  11. $courriel = $_POST['courriel'];
  12.  
  13.  
  14. $base = mysql_query("SELECT courriel FROM clients") or die(mysql_error());
  15.  
  16. #
  17. $tab_email_de_la_table = array();
  18. #
  19. //ta requete qui selectionne tes email
  20. #
  21. while($a = mysql_fetch_assoc($base))
  22. #
  23. {
  24. #
  25. $tab_email_de_la_table[] = $a['courriel'];
  26. #vauclusiennefr
  27. }
  28. if (in_array($courriel, $tab_email_de_la_table))
  29. {
  30. echo 'OUI <br />';
  31. }
  32. elseif ($courriel == "")
  33. {
  34. echo '<br />';
  35. }
  36. else
  37. {
  38. echo 'NON <br />';
  39. }
  40.  
  41. /*while ($donnees = mysql_fetch_array($base) )
  42. {
  43. echo $donnees['courriel'];
  44. echo "<br />";
  45. }*/
  46.  
  47.  
  48. mysql_close();
  49. ?>

 

 

 
Par Tatayet -  Le 30/03/2009 - 

Zut,il n'y a pas le bouton modifié le message, j'ai oublié de te dire merci beaucoup tout plein.

 Je vais maintenant tenter de l'améliorer. En entrant une autre variable qui consiste à donner en fonction de la réponse, le résultat d'une autre table.

 Ca se complique...

 J'va y arriver.

 

 

Ajouter une réponse à la discussion

Seuls les membres loggués sont autorisés à poster dans les forums !