je débute en PHP et je fais donc mes toutes premières pages : page de login pour des utilisateurs inscrits en base de donnée et pages d'inscription pour les nouveaux...
J'ai donc une page inscription1 avec un formulaire :
Code : Tout sélectionner
<form name="form1" action="" method="POST">
Votre e-mail : <input name="email" type="text" class="Style5" id="email" size="25">
<br>
Pseudo : <input name="pseudo" type="text" class="Style5" id="pseudo" size="25">
<br>
Mot de passe : <input name="pwd1" type="password" class="Style5" id="password" size="25">
<br>
Retapez le mot de passe : <input name="pwd2" type="password" class="Style5" id="password" size="25">
<br>
<input type="button" name="Submit" value="Inscription" onClick="javascript:checkForm();">
<?
if(substr(getenv("QUERY_STRING"),-1,1)=='e'){print("Cette adresse mail existe déjà dans notre base de données !!");}
if(substr(getenv("QUERY_STRING"),-1,1)=='p'){print("Ce pseudo existe déjà dans notre base de données !!");}
?>
</form>si je fais if($exist=='e') il me répond qu'il ne connaît pas cette variable... est-ce normal ?
Ensuite je vous passe le javascript qui vérifie que tout est bien saisi avant d'envoyer le formulaire à la page suivante qui vérifie si il n'y a pas déjà un membre avec cet email ou ce pseudo :
<?
$email = $_POST['email'];
$pseudo = $_POST['pseudo'];
$pwd = $_POST['pwd1'];
include("connexion.php");
// email existe déjà ?
$select = "SELECT ID_MEMBRE FROM MEMBRE WHERE EMAIL_MEMBRE = '$email'";
$result = mysql_query($select,$link) or die ('Impossible de se connecter à la base de données');
$total = mysql_num_rows($result);
// si on a récupéré un résultat on retourne à l'inscription.
if($total) {
header('Location: inscription.php?exist=e');
}
// on libère le résultat
mysql_free_result($result);
// pseudo existe déjà ?
$select = "SELECT ID_MEMBRE FROM MEMBRE WHERE PSEUDO_MEMBRE = '$pseudo'";
$result = mysql_query($select,$link) or die ('Impossible de se connecter à la base de données');
$total = mysql_num_rows($result);
// si on a récupéré un résultat on retourne à l'inscription.
if($total) {
header('Location: inscription.php?exist=p');
}
// on libère le résultat
mysql_free_result($result);
if(!get_magic_quotes_gpc())
{
// si php n'est pas configuré pour le faire automatiquement, on ajoute des \ devant les '
// deux raisons : autoriser d'ajouter des ', et sécuriser notre requete
$pseudo = addslashes($pseudo);
}
$sql = "INSERT INTO MEMBRE (EMAIL_MEMBRE, PSEUDO_MEMBRE, PASSWORD_MEMBRE, DATE_INSCRIPTION, ADMIN, ACTIF) VALUES ('" . $email . "','" . $pseudo . "', NOW(), 0, 0)";
$res = mysql_query($sql);
$chaine = 'Location: inscription2.php?pseudo='.$pseudo.'&email='.$email;
header($chaine);
?>
Je fais des essais avec l'enregistrement test que j'ai mis dans ma base de données, et il passe tout droit vers ma page inscription2 alors que si je fais des 'echo' dans mon code, je vois bien qu'il a des résultats dans les 2 requêtes. Je comprends pas.Et j'ai aussi dans inscription2 le même problème de querystring à savoir que j'ai bien mon url
Code : Tout sélectionner
http://127.0.0.1/SGEA/inscription2.php?pseudo=monpseudo&[email protected]Code : Tout sélectionner
Notice: Undefined variable: pseudo in c:\program files\easyphp1-8\www\sgea\inscription2.php on line 43a+