Formulaire de vérification par courriel
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:
<?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 />";
}
mysql_close();
?>
<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
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 :
<?php
$tab_email_de_la_table = array();
//ta requete qui selectionne tes email
while($a = mysql_fetch_assoc($tarequete))
{
$tab_email_de_la_table[] = $a['email'];
}
if(in_array($courriel,$tab_email_de_la_table))
//....
?>
Bonne chance ;)
Formidable!
J'ai donc modifié mon script et ça fonctionne:
<p>Entrez votre courriel utilisé lors de l'inscription pour vérification:</p>
<form action="verification.php" method="post">
<p>
<input type="text" name="courriel" /> <input type="submit" value="Valider" />
</p>
</form>
<?php
mysql_connect("TOPSECRETNASA", "TOPSECRETNASA", "TOPSECRETNASA");
mysql_select_db("TOPSECRETNASA");
$courriel = $_POST['courriel'];
$base = mysql_query("SELECT courriel FROM clients") or die(mysql_error());
#
$tab_email_de_la_table = array();
#
//ta requete qui selectionne tes email
#
while($a = mysql_fetch_assoc($base))
#
{
#
$tab_email_de_la_table[] = $a['courriel'];
#vauclusiennefr
}
if (in_array($courriel, $tab_email_de_la_table))
{
echo 'OUI <br />';
}
elseif ($courriel == "")
{
echo '<br />';
}
else
{
echo 'NON <br />';
}
/*while ($donnees = mysql_fetch_array($base) )
{
echo $donnees['courriel'];
echo "<br />";
}*/
mysql_close();
?>
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.