SQL Le message apparaît avant d'être inscrit.

Fermé
Droppy - 29 oct. 2013 à 19:49
 Droppy - 29 oct. 2013 à 20:47
Bonjour,

J'avais une question: étant débutant en php/sql, je m'étonne de voir que le message qui dit "vous êtes bien inscrit" s'affiche sur ma page avant que l'utilisateur n'aie entré ses informations, voilà mon code:

<?php include('config.php');
$check = mysql_query("INSERT INTO membres (pseudo,password,email) VALUES ('".$_POST['pseudo']."','".$_POST['password']."','".$_POST['email']."')");
if($check)
{
echo 'Vous etes bien enregistre';
}
else {
echo 'Erreur' .mysql_error();
}
?>

Vous pouvez voir de quoi je parle ici:
noobhit.fr/php/register.php
A voir également:

1 réponse

Utilisateur anonyme
29 oct. 2013 à 20:30
Bonsoir

Tu ne donnes qu'une partie de ton code.
Mais je parie que tu vois de lignes vides dans ta base.
Tu traites très probablement le formulaire sans attendre sa saisie.
Tu imagines que parce que tu as mis le code ci-dessus après le formulaire, il va attendre sagement que l'utilisateur l'ait rempli pour passer à la suite.
Ce n'est pas le cas : quand le serveur a envoyé le formulaire, il continue et traite la suite, ici ton php. Les variables $_POST sont vides, mais te requête s'exécute quand même, $check est true et donc ça affiche qu'on est enregistré.

En fait, c'est quand tu cliqueras sur le bouton 'Inscription' que ton script sera rappelé, avec des valeurs dans $_POST cette fois.

Il suffit de tester avec isset si $_POST a été initialisé pour traiter le formulaire :
<?php
if (isset ($_POST['pseudo'])) {
include('config.php');
$check = mysql_query("INSERT INTO membres (pseudo,password,email) VALUES ('".$_POST['pseudo']."','".$_POST['password']."','".$_POST['email']."')");
if($check)
{
echo 'Vous etes bien enregistre';
}
else {
echo 'Erreur' .mysql_error();
}
}
?>
1
Merci beaucoup de ta réponse
0