Bonjour à tous !
Voila, hier j'ai réussi à créer une inscription sur mon site.
Je souhaiterais que lorsque l'utilisateur a rentrée le pseudo souhaité, le mot de passe souhaité, son nom et son adresse mail, il recoive un mail de confirmation qui lui rappelle toutes les données, et que lorsqu'il clique sur le lien de confirmation, ses informations s'integre dans la base de donnée mysql.
Pour l'instant je sais comment integrer des informations dans une base de donnée à l'aide de requete. Ce que ne réussit pas à faire, c'est récuperer les variables $nom, $pseudo, $mail, $motdepasse, à partir du mail, pour pouvoir les rentrer dans la base de donnée...

Un peu d'aide ? Smiley confus
Modifié par vever (12 Feb 2008 - 20:45)
Bonjour,

On ne procède pas ainsi. Lorsque l'utilisateur s'inscrit, un compte temporaire ou avec l'état «en attente» est créé, et associé à un code de confirmation. Lorsque l'utilisateur saisit le code de confirmation dans le formulaire ad hoc ou bien accède à un script de confirmation avec code de confirmation en paramètre, on donne le statut «confirmé» au compte de l'utilisateur, ou bien on crée le compte si jamais on avait créé uniquement une entrée dans une base «compte_attente».

Enfin bref, on n'envoie pas ces informations par mail dans le but de les récupérer.
Florent V. a écrit :
Bonjour,

On ne procède pas ainsi. Lorsque l'utilisateur s'inscrit, un compte temporaire ou avec l'état «en attente» est créé, et associé à un code de confirmation. Lorsque l'utilisateur saisit le code de confirmation dans le formulaire ad hoc ou bien accède à un script de confirmation avec code de confirmation en paramètre, on donne le statut «confirmé» au compte de l'utilisateur, ou bien on crée le compte si jamais on avait créé uniquement une entrée dans une base «compte_attente».

Enfin bref, on n'envoie pas ces informations par mail dans le but de les récupérer.


Ahhh ok !
Merci beaucoup de cette aide précieuse, ça me simplifie la vie
Smiley biggrin
Ben en fait non, j'ai toujours un problème.
Quand il clique sur le lien de son message, je voudrais que dans la base de donnée le champ "statut" passe de "En attente" à "Activé".
Seulement il me faut une restriction pour savoir de quel utilisateur je parle, et c'est pour ça que je voulais récuperer une variable, pour pouvoir faire ma restriction.

Alors ? Comment faire ?
Hello vever Smiley cligne ,

Un petit exemple pour préciser...

A l'inscription du nouveau membre, en plus des champs classiques (pseudo, password, email, ...), tu alimentes 2 zones dans ta table :

confirme (égal à "N" tant que l'inscription n'est pas confirmée)

key qui est généré aléatoirement et qui servira d'identifiant :
// Code Accès randomize
$pattern = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$length = 15; // nombre de caractères
$key = '';
for($i = 0; $i < $length; $i++) {
	$key .= $pattern{rand(0,61)};
}
ce qui donne par exemple v1JWl765E5sFowz.

Dans le mail que tu envoies pour rappeler les infos de l'inscription tu rajoutes :
a écrit :
pour valider votre inscription, cliquez sur le lien suivant :
www.monsitequejai.com/validation.php?key=v1JWl765E5sFowz


Il ne reste plus qu'à faire une page validation.php qui récupère la valeur de key :
$key = !empty($_GET('key')) ? $_GET('key') : '';
puis qui vérifie dans la table qu'un membre a ce code d'accès.

Si oui, UPDATE de confirme pour le passer à "O" et message : "votre inscription est finalisée."

A+ Smiley smile
Modifié par Heyoan (12 Feb 2008 - 00:33)
Smiley rolleyes WOUUUUUUUUUUWWW !!!
Exactement ce que je cherchais vindiou ! ce genre d'adresse toute biscornue que j'avais jamais compris le fonctionnement ! Smiley eek

Un très très très grand merci à toi et à Florent V.

Je vais de ce pas essayer ça, si jamais j'ai un problème je vous recontacte.


Longue vie à vous les gars !!! Smiley biggrin
vever a écrit :
Longue vie à vous les gars !!! Smiley biggrin
A toi tout pareil Smiley ravi !


PS : l'exemple n'est qu'un squelette. Pour bien faire il faudra vérifier la valeur de key pour ne pas risquer une "injection SQL", prévoir d'autres messages comme "votre inscription a déjà été enregistrée", etc..., etc...
Administrateur
Bonjour,

Que fais-tu côté serveur (quel traitement?) lorsque le tableau $_GET n'est pas vide? Tu as au moins un test là-dessus?


Sinon, pour compléter l'explication d'Heyoan, il faut en tout cas éviter d'utiliser dans le mail l'id du membre.
Il pourrait modifier le lien et aller valider tout le monde de id=1 à 100.000 sans avoir accès aux comptes mails de ces autres membres Smiley sweatdrop
euhhhhhhhhhh....
ben mon code de la page validation c'est ça :

<html>
<body>
<?php
$key = !empty($_GET('key')) ? $_GET('key') : '';
mysql_connect("localhost","vever123fr","***");
mysql_select_db("vever123fr");
$requete = "UPDATE client SET statut='Activé' WHERE key='$key'";
mysql_query($requete);
echo "Bienvenue. Vous êtes à présent membre du site. <a href='accueilidentification.php'>Identifies toi dès maintenant !</a>";
mysql_close()
?>
</body>
</html>

Modifié par vever (12 Feb 2008 - 01:28)
Bon ben, il est 3h12 du mat', j'ai réussi à résoudre mon problème, tout marche nickel ! Smiley sweatdrop

Merci à tous pour votre aide précieuse et à une prochaine ! Smiley cligne