Activation du compte
max1395
-
max1395 -
max1395 -
Bonjour,
je suis webmaster d'un site et je voudrais faire un systeme d'activation du compte : je voudrais que quand une personne s'inscrit sa lui envoie un mail avec un lien sur lequel la personne doit cliquer pour valider son inscription.
je ne sais pas du tout comment faire , je n'est pas de code de depart si vous pouviez m'aider ?
merci beaucoup
je suis webmaster d'un site et je voudrais faire un systeme d'activation du compte : je voudrais que quand une personne s'inscrit sa lui envoie un mail avec un lien sur lequel la personne doit cliquer pour valider son inscription.
je ne sais pas du tout comment faire , je n'est pas de code de depart si vous pouviez m'aider ?
merci beaucoup
A voir également:
- Activation du compte
- Clé d'activation windows 10 - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Installer windows 10 sans compte microsoft - Guide
- Comment savoir qui regarde mon compte facebook - Guide
28 réponses
salut.
je ne sais pas a quel niveau tu en es, si tu as déja créé les comptes ou pas.
dans ta base de données, dans la table "utilisateurs", tu vas avoir les champs login, mot_de_passe (à crypter en md5 ou sha1, et comparer les mots de passes cryptés pour plus de sécurité), activation et email
lors de l'inscription, tu mettras "activation" à 0
si quelqu'un veut se loguer avec un compte dont l'activation est à 1, tu l'autorise, sinon, tu le refuses.
lors de l'inscription, après avoir inséré les données dans la base de données, tu envoies un mail (fonction mail, vas voir les exemples en ligne)
ce mail doit contenir un lien qui pointe sur une page "activation". Ce lien contiendras dans les paramètres le login de la personne (et meme un champs de sécurité si tu veux
exemple: http://www.monsite.com/activation?login=blabla&securite=6844fs4f
poru calculer la valeur de securite, tu peux par exemple faire
$securite = md5($login."ma securité")
dans le script activation, tu vas verifier que la clef de sécuité est cororecte
if($_GET['securite']==md5(md5($_GET['login]."ma securité")))
{
ta requete sql pour updater l'etat de activation dans la table utilisateurs pour les entrées dont le login correspond à celui qui est communiqué
}
et voila....
si tu ne comprends pas une partie, je veux bien détailler un peu plus, mais il faut que tu sois précis
je n'ai pas de code tout prêt à te donner
n'hésites pas à donner du code que tu as déja fait, ou de nous dire à quel état d'avancement tu en est dans le site
je ne sais pas a quel niveau tu en es, si tu as déja créé les comptes ou pas.
dans ta base de données, dans la table "utilisateurs", tu vas avoir les champs login, mot_de_passe (à crypter en md5 ou sha1, et comparer les mots de passes cryptés pour plus de sécurité), activation et email
lors de l'inscription, tu mettras "activation" à 0
si quelqu'un veut se loguer avec un compte dont l'activation est à 1, tu l'autorise, sinon, tu le refuses.
lors de l'inscription, après avoir inséré les données dans la base de données, tu envoies un mail (fonction mail, vas voir les exemples en ligne)
ce mail doit contenir un lien qui pointe sur une page "activation". Ce lien contiendras dans les paramètres le login de la personne (et meme un champs de sécurité si tu veux
exemple: http://www.monsite.com/activation?login=blabla&securite=6844fs4f
poru calculer la valeur de securite, tu peux par exemple faire
$securite = md5($login."ma securité")
dans le script activation, tu vas verifier que la clef de sécuité est cororecte
if($_GET['securite']==md5(md5($_GET['login]."ma securité")))
{
ta requete sql pour updater l'etat de activation dans la table utilisateurs pour les entrées dont le login correspond à celui qui est communiqué
}
et voila....
si tu ne comprends pas une partie, je veux bien détailler un peu plus, mais il faut que tu sois précis
je n'ai pas de code tout prêt à te donner
n'hésites pas à donner du code que tu as déja fait, ou de nous dire à quel état d'avancement tu en est dans le site
Merci j'ai bien lis et relis est j'ai donc un petit code . voila j'ai mis dans ma table un champ activation avec la valeur 0 par default . Ensuite j'ai mis dans ma page de traitement de l'inscirption ce code :
Ensuite je dois introduire le code générer dans la case code ( un autre champ de ma table). il faut après que je fasse la page avec un code qui récupère le pseudo , le code d'activation et compare le code avec celui enregistrer , si c'est le même sa update le champ activation a 1 . Et c bon . c'est ça ? merci de m'aider pour la page qui traite de récupérer les donnée et d'updaté . Pouvez vous me dire si mon code marche ?
merci beaucoup
mt_srand((float) microtime()*1000000);
$securite = mt_rand(0, 100) ;
$email = $_POST["email"] ;
$headers ='From: "mon site"<$email>'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="<html><head><title>Un titre ici</title></head><body>
lien d'activation : http://monsite.com/activation.php?login=$pseudo&securite=$securite<br />
</body></html>";
if(mail('$email', 'Activation compte', $message, $headers))
{
echo 'Le message a été envoyé avec succès .Nous allons vous répondre le plus rapidement possible .<br>
Cliquer <a href="index.php">ici </a>pour revenir a index. Merci
';
}
else
{
echo 'Le message n\'a pu être envoyer
Cliquer <a href="index.php">ici pour revenir a index. Merci';
}
Ensuite je dois introduire le code générer dans la case code ( un autre champ de ma table). il faut après que je fasse la page avec un code qui récupère le pseudo , le code d'activation et compare le code avec celui enregistrer , si c'est le même sa update le champ activation a 1 . Et c bon . c'est ça ? merci de m'aider pour la page qui traite de récupérer les donnée et d'updaté . Pouvez vous me dire si mon code marche ?
merci beaucoup
sans avoir essayé, oui je pense que ca marche (sinon ca n'en est pas loin).
le seule truc, c'est que pour la sécurité, tu le crée de manière aléatoire, entre 1 et 100... et tu n'enregistres pas le résultat dans la base de données!!! moi je créais ca a partir d'un cryptage md5 (donc pas aléatoire du tout, mais dépendant du login) et je n'avais donc pas besoin de l'enregistrer dans la base de données
lis les tutopriaux sur les base de données du siteduzero pour utiliser la base de donénes
pour la page d'activation, interesses toi à cette partie:
$securite = md5($login."ma securité")
//dans le script activation, tu vas verifier que la clef de sécuité est correcte
if($_GET['securite']==md5(md5($_GET['login]."ma securité")))
{
$requete="update utilisateurs set activation = 1 where login = $_GET[login]";
//et la t'executes la requete ..
.....
}
le seule truc, c'est que pour la sécurité, tu le crée de manière aléatoire, entre 1 et 100... et tu n'enregistres pas le résultat dans la base de données!!! moi je créais ca a partir d'un cryptage md5 (donc pas aléatoire du tout, mais dépendant du login) et je n'avais donc pas besoin de l'enregistrer dans la base de données
lis les tutopriaux sur les base de données du siteduzero pour utiliser la base de donénes
pour la page d'activation, interesses toi à cette partie:
$securite = md5($login."ma securité")
//dans le script activation, tu vas verifier que la clef de sécuité est correcte
if($_GET['securite']==md5(md5($_GET['login]."ma securité")))
{
$requete="update utilisateurs set activation = 1 where login = $_GET[login]";
//et la t'executes la requete ..
.....
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci je suis en train de réaliser la page qui envoie l'email et j'ai un petit problème . Voila quand j'essaye sa me mets : Le mail na pu être envoyer . Donc le mauvais message . Si vous pouviez regarder le code et me dire ce qui ne va pas . merci Sinon tout a l'aire de marcher , j'introduis dans ma bdd le code de sécurité et je n'est pas encore fais la page de traitements d'activation . Quand j'introduis dans ma bdd les informations , c'est toutes les informations donc c'est pour ça que il y a beaucoup d'informations .
voila le code qui envoie le message :
Au passage sa me mets aussi comme erreur : Column count doesn't match value count at row 1 si vous pouviez aussi m'aider a résoudre ce probleme .
merci beaucoup de votre aide qui m'aie d'une grande utilité car j'ai besoin de finir mon site très vite .
voila le code qui envoie le message :
// activation du compte
mt_srand((float) microtime()*1000000);
$securite = mt_rand(0, 100) ;
$email = $_POST["email"] ;
// envoie l'email
$headers ='From: $email ';
$headers .='Reply-To: maxime4213@orange.fr';
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="<html><head><title>Activation de compte Max-fric.com</title></head><body>
lien activation : http://membres.lycos.fr/max13952/activation.php?login=$pseudo&securite=$securite<br />
</body></html>";
if(mail('$email', 'Activation compte', $message, $headers))
{
echo 'Le message a été envoyé avec succès .Nous allons vous répondre le plus rapidement possible .<br>
Cliquer <a href="index.php">ici </a>pour revenir a index. Merci';
}
else
{
echo 'Le message n\'a pu être envoyer
Cliquer <a href="index.php">ici pour revenir a index. Merci';
}
//On balance le tout dans notre table
Mysql_query('INSERT INTO membre (id,pseudo,email,passe,prenom,naissance,pays,sexe,activation)
VALUES ("","'.$pseudo.'", "'.$email.'", "'.$passe.'", "'.$prenom.'", "'.$naissance.'", "'.$pays.'", "'.$sexe.'","'.$securite.'") ')
or die (mysql_error());
Au passage sa me mets aussi comme erreur : Column count doesn't match value count at row 1 si vous pouviez aussi m'aider a résoudre ce probleme .
merci beaucoup de votre aide qui m'aie d'une grande utilité car j'ai besoin de finir mon site très vite .
essayes de regler ton serveur smtp avec la fonction set_ini("smtp","......")
en, completant l'adresse du smtp
en, completant l'adresse du smtp
Non ce n'est pas le probleme car quand je veux envoyer un message en l'indiquant directement sa marche
tu ne trouves pas bizarre le ."\n" au bout de ta 3° ligne de headers ?
moi, ce que je trouve encore plus bizarre, c'est qu'il n'y ai pas son petit copain "\r" avec lui !
regardes l'exemple 4: https://www.php.net/manual/fr/function.mail.php
toutes les lignes de headers doivent se terminer par \r\n
moi, ce que je trouve encore plus bizarre, c'est qu'il n'y ai pas son petit copain "\r" avec lui !
regardes l'exemple 4: https://www.php.net/manual/fr/function.mail.php
toutes les lignes de headers doivent se terminer par \r\n
bon j'ai corriger comme ça mes ça ne marche toujours pas :
<code>
<?php
$headers ='From: $email "\r\n" ';
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'. "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="<html><head><title>Un titre ici</title></head><body>
voter lien est http://**************/activation.php?email=$email&securite=$securite
</body></html>";
if(mail('$email', 'site', $message, $headers))
{
echo 'Le message a été envoyé avec succès ..<br>
Cliquer <a href="index.php">ici </a>pour revenir a index. Merci
';
}
else
{
echo 'Le message n\'a pu être envoyer
Cliquer <a href="index.php">ici pour revenir a index. Merci';
}
?>
<code>
<?php
$headers ='From: $email "\r\n" ';
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'. "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="<html><head><title>Un titre ici</title></head><body>
voter lien est http://**************/activation.php?email=$email&securite=$securite
</body></html>";
if(mail('$email', 'site', $message, $headers))
{
echo 'Le message a été envoyé avec succès ..<br>
Cliquer <a href="index.php">ici </a>pour revenir a index. Merci
';
}
else
{
echo 'Le message n\'a pu être envoyer
Cliquer <a href="index.php">ici pour revenir a index. Merci';
}
?>
avant de dire que ca fonctionne pas, regardes ce que tu as fait:
$headers ='From: $email "\r\n" ';
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'. "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
et regardes l'exemple:
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";
$headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
$headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";
donc tu étudies ca, et tu reproposes un code...
$headers ='From: $email "\r\n" ';
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'. "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
et regardes l'exemple:
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";
$headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
$headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";
donc tu étudies ca, et tu reproposes un code...
bon j'ai refais mon code est ça donne ça :
et ça marche pas .......
$headers ='From: $email'. "\r\n";
$headers .='Reply-To: '."\r\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'. "\r\n";
$headers .='Content-Transfer-Encoding: 8bit'. "\r\n";
$message ="<html><head><title>Un titre ici</title></head><body>
voter lien est http://membres.lycos.fr/max13952/activation.php?email=$email&securite=$securite
</body></html>";
if(mail('$email', 'site', $message, $headers))
{
echo 'Le message a été envoyé avec succès ..<br>
Cliquer <a href="index.php">ici </a>pour revenir a index. Merci
';
}
else
{
echo 'Le message n\'a pu être envoyer
Cliquer <a href="index.php">ici pour revenir a index. Merci';
}
et ça marche pas .......
je te disais de vérifier que le smtp était bien précisé ...
1- es ce que tu travailles en local (avec easyphp, wamp ou autre), ou directement sur ton hébergeur ?
2- que retournes cette ligne de commande: echo ini_get('SMTP');
1- es ce que tu travailles en local (avec easyphp, wamp ou autre), ou directement sur ton hébergeur ?
2- que retournes cette ligne de commande: echo ini_get('SMTP');