Exemple de code pour l'activation et la vérification de PHP par e-mail après l'inscription

怪我咯
Libérer: 2023-03-13 07:26:01
original
1454 Les gens l'ont consulté

En utilisant la méthode d'activation de vérification des e-mails, vous pouvez empêcher efficacement l'accès des robots de spam et d'enregistrement malveillants. Il est très simple d'écrire les étapes de vérification et d'activation des e-mails après l'inscription en php, je pense que vous pouvez l'apprendre en quelques minutes.

Un total de deux pages sont requis, register.php et verify.php

1 Inscription de l'utilisateurFormulaire register.php

Le code est. comme suit :

 <html>
 <body>
   <form action="register.php" method="post" name="register">
      用户名:<input type="text" name="username" />
      密码:<input type="password" name="password" />
      电子邮件:<input type="text" name="email" />
      <input type="submit" value="注册" />
   </form>
 </body>
 </html>
Copier après la connexion

2. Créer un tableau de données utilisateur Utilisateurs

Le code est le suivant :

 CREATE TABLE IF NOT EXISTS `users` (
   `id` int(11) NOT NULL auto_increment,
   `status` varchar(20) NOT NULL,
   `username` varchar(20) NOT NULL,
   `password` varchar(20) NOT NULL,
   `email` varchar(20) NOT NULL,
   `activationkey` varchar(100) NOT NULL,
   PRIMARY KEY  (`id`),
   UNIQUE KEY `username` (`username`),
   UNIQUE KEY `email` (`email`),
   UNIQUE KEY `activationkey` (`activationkey`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
Copier après la connexion

3. informations d'enregistrement des utilisateurs dans le tableau de données
Nous utilisons le statut « vérifier » pour représenter les utilisateurs qui n'ont pas encore été activés.

Le code est le suivant :

$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();
 $username = mysql_real_escape_string($_POST[username]);
 $password = mysql_real_escape_string($_POST[password]);
 $email = mysql_real_escape_string($_POST[email]);  
 $sql="INSERT INTO users (username, password, email, activationkey, status) VALUES (&#39;$username&#39;, &#39;$password&#39;, &#39;$email&#39;, &#39;$activationKey&#39;, &#39;verify&#39;)";
Copier après la connexion

4. Envoyez le code de vérification

Le code est le suivant :

 echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";
 ##Send activation Email
 $to      = $_POST[email];
 $subject = " YOURWEBSITE.com Registration";
 $message = "Welcome to our website!\r\rYou, or someone using your email address, has completed registration at YOURWEBSITE.com. You can complete registration by clicking the following link:\rhttp://www.YOURWEBSITE.com/verify.php?$activationKey\r\rIf this is an error, ignore this email and you will be removed from our mailing list.\r\rRegards,\ YOURWEBSITE.com Team";
 $headers = &#39;From: noreply@ YOURWEBSITE.com&#39; . "\r\n" .  
     &#39;Reply-To: noreply@ YOURWEBSITE.com&#39; . "\r\n" .  
     &#39;X-Mailer: PHP/&#39; . phpversion();  
 mail($to, $subject, $message, $headers);
Copier après la connexion

5. Vérifiez le code d'activation verify .php
Si les codes de vérification sont les mêmes, activez l'utilisateur.

Le code est le suivant :

 $queryString = $_SERVER[&#39;QUERY_STRING&#39;];
 $query = "SELECT * FROM users";
 $result = mysql_query($query) or die(mysql_error());
 while($row = mysql_fetch_array($result)){  
     if ($queryString == $row["activationkey"]){
        echo "Congratulations!" . $row["username"] . " is now the proud new owner of a YOURWEBSITE.com account.";
        $sql="UPDATE users SET activationkey = &#39;&#39;, status=&#39;activated&#39; WHERE (id = $row[id])";         
        if (!mysql_query($sql)) {
           die(&#39;Error: &#39; . mysql_error());
        }          
         // 到这里,用户已经完全激活了账号,你可以将页面跳转到登陆后的界面了  
     }
   } // end of while
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal