Maison  >  Article  >  développement back-end  >  Fonction de compte d'activation par e-mail d'enregistrement d'utilisateur PHP

Fonction de compte d'activation par e-mail d'enregistrement d'utilisateur PHP

怪我咯
怪我咯original
2017-06-16 11:11:431404parcourir

Lorsque nous enregistrons un compte sur un site Web, nous recevons généralement un e-mail contenant un lien pour l'activer. Cet article présente principalement le code d'implémentation du compte d'activation de messagerie PHP. Ceux qui sont intéressés peuvent en prendre connaissance

. Lorsque nous enregistrons un compte sur un site Web, nous recevons généralement un e-mail avec un lien cliquable pour l'activer. Comment activer notre compte Aujourd'hui, je vais vous présenter une méthode.

Conditions préparatoires

Lorsque nous enregistrons un compte, nous enregistrons généralement notre identifiant, notre nom d'utilisateur, notre mot de passe, notre e-mail ou notre numéro de téléphone portable dans le tableau des utilisateurs, et il y a aussi un champ pour savoir si le compte est activé ou non. Nous supposons qu'il génère généralement un code d'activation lors de l'inscription à activation varchar(50) et insère le code d'activation dans le champ d'activation. Nous pouvons utiliser $activation_key=bin2hex(openssl_random_pseudo_bytes(16)); pour le générer et l'insérer dans le champ.

Enregistrer les informations d'activation dans le lien

Puisque nous avons activé le compte après avoir cliqué sur le lien dans l'e-mail, cela signifie que les informations d'activation doivent être stockées dans ce lien. Quelles informations doit-il stocker ? Tout d'abord, il doit avoir un code d'activation et l'e-mail ou l'identifiant de l'utilisateur lors de l'inscription. Nous utilisons ici l'e-mail. Par exemple, ce lien ci-dessous.


Copier le code Le code est le suivant :


$message.="92e1a62f6aae274ab35ce98aace241b2Activer5db79b134e9f6b82c0b36e0489ee08ed";

$email est l'e-mail que nous avons utilisé lors de l'inscription. Nous utilisons urlencode() pour l'encoder et utilisons la chaîne pour la partie requête de l'URL. $activation_key est le code d'activation que nous avons généré. le serveur pour envoyer cet e-mail Envoyez un e-mail d'activation, et celui-ci sera affiché sous forme d'hyperlien dans le client de messagerie, vous invitant à cliquer. Après avoir cliqué, nous transférerons l'e-mail et la clé vers le fichier activate.php, ce qui signifie que nous le ferons. commencez à effectuer la vérification et activez le compte.

Vérifiez les informations dans activate.php

Nous utilisons la demande d'URL pour transmettre l'e-mail de l'utilisateur et le code d'activation à activate.php. informations originales dans la base de données En comparant les informations, nous pouvons vérifier l'utilisateur, notre première étape consiste donc à insérer le code d'activation dans la table utilisateur. J'ai écrit un exemple d'activate.php :


<.>

<?php
$link=mysqli_connect("localhost", "root", "root", "project") or die("Database Access Denied");//连接数据库
if (!isset($_GET[&#39;email&#39;])||!isset($_GET["key"])){
  echo "<p class=&#39;alert alert-danger&#39;>Account Activation Failed</p>";
  exit;//如果邮件链接损坏,没有传入用户激活信息,则不执行后续步骤
}
$email=$_GET[&#39;email&#39;];
$key=$_GET[&#39;key&#39;];
$email=mysqli_real_escape_string($link, $email);
$key=mysqli_real_escape_string($link, $key);//转义特殊字符
$sql="UPDATE users SET activation=&#39;activated&#39; WHERE (user_email=&#39;$email&#39; AND activation=&#39;$key&#39;) LIMIT 1";
$result=mysqli_query($link, $sql);//查询email与key匹配的数据项,并且更新activation字段到activated
if (mysqli_affected_rows($link)==1){
  echo "<p>Account Activated</p>";
  echo &#39;<a href="index.php" rel="external nofollow" type="button">Login</a>&#39;;
  echo "<br/>";
}else{
  echo "<p>Account Activation Failed Or Already Activated</p>";
}
?>


Maintenant, le compte est activé. Lors de la connexion, l'utilisateur vérifie d'abord si l'activation est activée, puis passe aux étapes suivantes

Cet article couvre uniquement la solution à ce problème. La méthode, un enregistrement complet de l'utilisateur, une activation, une connexion et le serveur d'envoi d'e-mails doivent également être configurés

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn