Formulaire d'inscription php

Résolu/Fermé
ytzmi Messages postés 14 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 25 mai 2011 - 25 mai 2011 à 19:06
 ytzmi - 28 mai 2011 à 17:40
Bonjour,

je sais que le sujet a déjà été traité, mais je vous propose le script qui me pose problème.

quand je fais l'inscription, il m'est mis comme message d'erreur "Votre inscription est incomplète. Vous devez vous réinscrire." hors, lorsque je vais dans mon "phpmyadmin", mon pseudo, mon m d p et mon @ y est inscrit.

donc, l'inscription se fait mais pas sur le site.

voici le script.

j'ai beau chercher, je ne vois pas l'erreur... mais à trop chercher, je ne vois plus rien.

<?php
include ('protected/login.inc.php');
//include ('protected/ctrl.inc.php');

$Pseudo1=$_POST["pseudo1"];
$Pseudo2=$_POST["pseudo2"];
$Password1=$_POST["password1"];
$Password2=$_POST["password2"];
$Email1=$_POST["mail1"];
$Email2=$_POST["mail2"];

$Message_envoyé="Dans quelques instants tu vas trouver un E-Mail dans ta boîte à lettres<BR> t'indiquant le lien à suivre pour activer ton compte.<BR> La propagation de ce courrier peut prendre quelques minutes";
$Message_non_envoyé="Une erreur indéterminée s'est produite dans la procédure d'inscription. Vérifies ton formulaire.";


// ON VERIFIE LES CHAMPS OBLIGATOIRES
if ($Pseudo1=="") exit("Tu dois choisir un nom");
if ($Pseudo2=="") exit("Tu dois confirmer ton nom");
if ($Password1=="") exit("Tu dois choisir un mot de passe");
if ($Password2=="") exit("Tu dois confirmer ton mot de passe");
if ($Email1=="") exit("L'adresse E-Mail est obligatoire");
if ($Email2=="") exit("Tu dois confirmer ton adresse E-Mail");

//ON VERIFIE LA COHERENCE DE LA SAISIE
if ($Pseudo1!=$Pseudo2) exit ("le Nom et sa confirmation sont différents. INSCRIPTION INVALIDE");
if ($Password1!=$Password2) exit ("le mot de passe et sa confirmation sont différents. INSCRIPTION INVALIDE");
if ($Email1!=$Email2) exit ("l'adresse E-Mail et sa confirmation sont différentes. INSCRIPTION INVALIDE");

//ON RECUPERE L'ENREGISTREMENT
$Id = -1;
$sql = "SELECT * FROM kdo WHERE Pseudo='$Pseudo1' AND Password='$Password1'";
$resultat = mysql_query($sql,$connexion) or die ("Erreur : ".mysql_error());

//SI L'ENREGISTREMENT EXISTE, ON RECUPERE LES VALEURS
$Enregistrements=mysql_num_rows($resultat);
if ($Enregistrements>0):
$row = mysql_fetch_row($resultat);
$Id = $row[0];
$Pseudo = $row[1];
$Password = $row[2];

endif;

//SI LE PSEUDO A DEJA ETE UTILISE, ON ARRETE L'INSCRIPTION
If ($Id!=-1 && $Pseudo==$Pseudo1):
exit("Ce Nom est déjà utilisé, tu dois en choisir un autre.");
endif;

//SI LE MOT DE PASSE A DEJA ETE UTILISE, ON ARRETE L'INSCRIPTION
If ($Id!=-1 && $Password==$Password1):
exit("Ce mot de passe est déjà utilisé, tu dois en choisir un autre.");
endif;

//SI LE COMPTE EXISTE, ON ARRETE L'INSCRIPTION
If ($Id!=-1 && $FlagActivation=='1'):
exit("Ton compte est déjà actif, tu ne peux pas en créer un second avec la même adresse E-mail.");
endif;

//ON MET LE FLAG A 1 OU 2 SELON QUE LE COMPTE EST A ACTIVER OU A CREER
if ($Id==-1):
$Flag=2; //Le compte est à créer
endif;

If ($Id!=-1 && $FlagActivation=='0'):
$Flag=1; //Le compte est à activer
endif;

// GENERATION D'UNE CLE ALEATOIRE. SI LE VISITEUR EST DEJA INSCRIT, ON N'EN TIENDRA PAS COMPTE;
$Clé = md5(microtime(TRUE)*100000);

//SI LE COMPTE EST A CREER, ON ENREGISTRE LES INFORMATIONS DANS LA BASE DE DONNEES
iF ($Flag==2):
$requete = "INSERT INTO kdo (Pseudo, Password, Email, Cle)
VALUES
('$Pseudo1', '$Password1', '$Email1', '$Clé')";
$resultat = mysql_query($requete,$connexion);
//S'il y a une erreur
if ($resultat==false):
exit("Ton inscription n'a pu être effectuée pour une raison inconnue, vérifies ton formulaire.");
endif;
else :
//Le compte est à activer, on le met d'abord à jour dans changer la clé chiffrée et l'adresse E-Mail
$requete = "UPDATE kdo SET pseudo='$Pseudo1', password='$Password1' WHERE id=$Id";
$resultat = mysql_query($requete,$connexion);

//S'il y a une erreur
if ($resultat==false) exit("Ton inscription n'a pu être effectuée pour une raison inconnue, vérifies ton formulaire.");

endif;

//ON RECUPERE LES IDENTIFIANTS DU VISITEUR S'IL EST ENREGISTRE
$sql = "SELECT Pseudo, Password FROM kdo WHERE Email='$Email'";
$resultat = mysql_query($sql,$connexion) or die ("Requête incorrecte");
while ($row = mysql_fetch_array($resultat))
{
$Pseudo = $row['Pseudo'];
$Password=$row['Password'];
}

//SI ON NE TROUVE PAS LES IDENTIFIANTS ON NE VA PAS PLUS LOIN
If ($Pseudo=="" OR $Password==""):
exit("Votre inscription est incomplète. Vous devez vous réinscrire.");
endif;

//TOUT EST BON - PREPARATION DU MESSAGE D'ACTIVATION
$Sujet = "Procédure d'inscription";
$Entete = "webmaster@$SERVER_NAME";
$Destinataire = $Email1;
$Destinataire = "ikdo@free.fr";
//$destinataire .= "ytz webmaster<kdo@free.fr>";

//FORMULE DE POLITESSE

$Texte .= "Ravie que ce site ait trouvé un intérêt à tes yeux\n\n";
$Texte .= "Te voilà avec ta propre page.\n\n";
$Texte .= "Ton nom est : $Pseudo\n\n";
$Texte .= "Ton mot de passe est : $Password\n\n";
$Texte .= "Je te conseille de le noter quelque part.\n";
$Texte .= "Ton adresse E-Mail et tes identifiants ne seront pas divulgués. A toi de les transmettre à ceux de ton entourage pour qu'ils puissent venir écrire ou choisir un cadeau.

---------------
Ceci est un mail automatique, Merci de ne pas y répondre.";

$sendmail=mail($Destinataire, $Sujet, $Texte, $Entete) ; // Envoi du mail
if ($sendmail):
echo $Message_envoyé;
else:
echo $Message_non_envoyé;
endif;

//FERMETURE DE LA CONNEXION
mysql_close($connexion);

?>

Si vous estimez que ceci est un doublon des autres messages postés, veuillez m'en excuser


A voir également:

1 réponse

bonjour

j'ai trouvé mon problème, c'est que j'avais mis l'inscription et la validation sur la même page.

il est certain que cela ne pouvait pas marcher.

merci
0