zl程序教程

您现在的位置是:首页 >  后端

当前栏目

用Php编写注册后Email激活验证的实例代码

实例PHP注册代码 激活 验证 编写 email
2023-06-13 09:14:47 时间

总共需两个页面,register.php和verify.php

1.用户注册表格register.php

复制代码代码如下:


 <html>

 <body>

  <formaction="register.php"method="post"name="register">

     用户名:<inputtype="text"name="username"/>

     密码:<inputtype="password"name="password"/>

     电子邮件:<inputtype="text"name="email"/>

     <inputtype="submit"value="注册"/>

  </form>

 </body>

 </html>

2.创建用户数据表格Users

复制代码代码如下:

 CREATETABLEIFNOTEXISTS`users`(

  `id`int(11)NOTNULLauto_increment,

  `status`varchar(20)NOTNULL,

  `username`varchar(20)NOTNULL,

  `password`varchar(20)NOTNULL,

  `email`varchar(20)NOTNULL,

  `activationkey`varchar(100)NOTNULL,

  PRIMARYKEY (`id`),

  UNIQUEKEY`username`(`username`),

  UNIQUEKEY`email`(`email`),

  UNIQUEKEY`activationkey`(`activationkey`)

 )ENGINE=MyISAM DEFAULTCHARSET=latin1AUTO_INCREMENT=9;

3.创建验证码用户注册信息存入数据表
我们使用状态‘verify"来表示尚未激活的用户。

复制代码代码如下:
 $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="INSERTINTOusers(username,password,email,activationkey,status)VALUES("$username","$password","$email","$activationKey","verify")";

4.发送验证码

复制代码代码如下:
 echo"Anemailhasbeensentto$_POST[email]withanactivationkey.Pleasecheckyourmailtocompleteregistration.";

 ##SendactivationEmail

 $to     =$_POST[email];

 $subject="YOURWEBSITE.comRegistration";

 $message="Welcometoourwebsite!\r\rYou,orsomeoneusingyouremailaddress,hascompletedregistrationatYOURWEBSITE.com.Youcancompleteregistrationbyclickingthefollowinglink:\rhttp://www.YOURWEBSITE.com/verify.php?$activationKey\r\rIfthisisanerror,ignorethisemailandyouwillberemovedfromourmailinglist.\r\rRegards,\YOURWEBSITE.comTeam";

 $headers="From:noreply@YOURWEBSITE.com"."\r\n".  

    "Reply-To:noreply@YOURWEBSITE.com"."\r\n".  

    "X-Mailer:PHP/".phpversion();  

 mail($to,$subject,$message,$headers);

5.验证激活代码verify.php
如果验证码相同,则激活用户。

复制代码代码如下:
 $queryString=$_SERVER["QUERY_STRING"];

 $query="SELECT*FROMusers";

 $result=mysql_query($query)ordie(mysql_error());

 while($row=mysql_fetch_array($result)){  

    if($queryString==$row["activationkey"]){

       echo"Congratulations!".$row["username"]."isnowtheproudnewownerofaYOURWEBSITE.comaccount.";

       $sql="UPDATEusersSETactivationkey="",status="activated"WHERE(id=$row[id])";         

       if(!mysql_query($sql)){

          die("Error:".mysql_error());

       }          

        //到这里,用户已经完全激活了账号,你可以将页面跳转到登陆后的界面了  

    }

  }//endofwhile