Ce script valide un compte membre par mail avec URL integrée.
Il faut:
- 2 pages, une pour l'inscription (avec votre formulaire html biensur) et une pour la verification.
- 2 tables, une pour le compte provisoir et une pour les comptes validés (definitif)
-La page d' inscription envoie les données du formulaire et une clé aleatoire dans la table compte_provisoir.
-La page de verification compare la clé et l id, si elles sont identiques les données de la table compte_provisoir seront effacées et deplacées dans la table compte_definitif
Heu je suis debutant et c est mon tout premier script que je post ici
Source / Exemple :
//------------------------------
// PAGE D INSCRIPTION
//------------------------------
//creation d une variable qui genere une clé a 10 chiffres
$numero = "0123456789";
$clef = str_shuffle($numero);
//envoi des données dans la table compte_provisoir avec la clé
if (sizeof($_POST))
{
if (isset($_POST['pseudo']) and isset($_POST['password']) and isset ($_POST['mail']))
{
$pseudo = $_POST['pseudo'];
$password = $_POST['password'];
$mail = $_POST['mail'];
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO compte_provisoir VALUES('', '$clef', '$pseudo', '$password', '$mail')")or die(mysql_error());
$reponse_id = mysql_query("SELECT id FROM compte_provisoir WHERE pseudo = '$pseudo'")or die(mysql_error());
mysql_close();
echo "tu vas recevoir un mail";
//le mail est envoyé, l'url contient la clé et l'id pour la comparaison (page verification)
while ($donnees = mysql_fetch_array($reponse_id))
{
$id = $donnees['id'] ;
$mail_destinataire = $_POST['mail'];
$sujet = " validation de l'inscription";
$message = "Ton mot de passe est: $password \n Ton pseudo est: $pseudo \n \n Pour valider ton inscription clique sur le lien suivant: \n http://127.0.0.1:81/Php/zone_membre_validation.php?id=$id&clef=$clef";
$head = "Salut $pseudo ";
mail($mail_destinataire, $sujet, $message, $head);
}
}
//-----------------------------
// PAGE VERIFICATION (http://127.0.0.1:81/Php/zone_membre_validation.php?id=$id&clef=$clef)
//-----------------------------
//ici on recupere la clé et l id de l'url
if (isset($_GET['id']) and isset($_GET['clef']))
{
$recherche_id= $_GET['id'];
$recherche_clef = $_GET['clef'];
//on recupere les données de la table compte_provisoir
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$reponse_comparaison = mysql_query("SELECT id, clef FROM compte_provisoir WHERE id = '$recherche_id'")or die(mysql_error());
$reponse_provisoir = mysql_query("SELECT clef, pseudo, password, mail FROM compte_provisoir WHERE id = '$recherche_id'")or die(mysql_error());
mysql_close();
while ($donnees_provisoir = mysql_fetch_array($reponse_provisoir))
{
$clef = $donnees_provisoir['clef'];
$pseudo = $donnees_provisoir['pseudo'];
$password = $donnees_provisoir['password'];
$mail = $donnees_provisoir['mail'];
}
while ($donnees_comparaison = mysql_fetch_array($reponse_comparaison))
{
//ici le plus important on compare la clé de la table compte_provisoir a celle de l'url, idem pour l'id, si elles sont identiques alors on en fait une requette pour balancer les données dans le compte_definitif et on supprime celles du compte provisoir
if ($donnees_comparaison['clef'] == $recherche_clef and $donnees_comparaison['id'] == $recherche_id)
{ echo "compte validé"};
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO compte_definitif VALUES('', '$clef', '$pseudo', '$password', '$mail')")or die(mysql_error());
mysql_query("DELETE FROM compte_provisoir WHERE clef = '$clef '")or die(mysql_error());
mysql_close();
}
else {echo "echec validation";}
//si la variable clé (de la table compte_provisoir)
if (empty($clef))
{ echo "votre compte est deja validé";}
}
Conclusion :
Vous pouvez ameliorer le script par exemple: effacer un compte de la table compte_provisoir au bout d'une semaine grace à la date...
J attends vos remarques
merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.