20150323 PHP模拟邮件激活注册用户

20150323 PHP模拟邮件激活注册用户

2015-03-22 Lover雪儿

    昨天我们实现了PHP邮件的收发功能,http://www.cnblogs.com/lihaiyan/p/4356798.html ,今天我们来实现一个模拟注册用户,并且通过给用户发送激活邮件激活账户的功能。

 

废话不都说,附上源码:

数据库连接php源码:

 1 

conn.php

用户注册并且发送激活邮件php源码:

 1 IsSMTP();
58 $phpmailer->Host = 'smtp.163.com';    //设置smtp服务器
59 $phpmailer->SMTPAuth = true;        //SMTP服务器是否需要认证,要登录
60 $phpmailer->Port = 25;                //smtp端口
61 $phpmailer->Username = "lihaiyan1063385677";  //smtp服务器账号
62 $phpmailer->Password = "1063385677";          //smtp服务器密码
63 
64 //信息设置完毕
65 //开始正式写信
66 $phpmailer->CharSet = "UTF-8";        //设置字符集
67 $phpmailer->From = "[email protected]";    //来自
68 $phpmailer->FromName = "LoverXueEr";        //姓名
69 $phpmailer->Subject = $uname . ',点击激活邮件';    //主题
70 //开始正式写邮件内容
71 $phpmailer->Body = "please click http://localhost/foruser/PHPMailer/mail/mail_active.php?code=$code to active the acount!!\nThank you!";    
72 
73 //添加收件人
74 $phpmailer->AddAddress("[email protected]", "Lover雪儿");
75 
76 //发信
77 echo $phpmailer->send() ? "ok":"fail";
78 
79 
80 ?>

mail_create.php

用户激活php源码:

 1  status = 1)
 8  * 2.3把激活码的expire改为-1,激活时间修改
 9  * */
10 require('./conn.php');
11 
12 $code = $_GET['code'];
13 if(strlen($code) != 8){ 
14     exit('激活码位数错误!');
15 }
16 
17 $sql = "select * from activecode where code = '$code'";
18 echo $sql,"
"; 19 $rs = mysql_query($sql,$conn); 20 $row = mysql_fetch_assoc($rs); //取结果 21 22 if(empty($row)){ 23 exit('激活码不存在!'); 24 } 25 26 if(time() > $row['expire']){ 27 exit('激活码已过期,请重新申请!'); 28 } 29 30 //走到这里,意味着激活码正常,激活用户 31 $sql = "update mailuser set status = 1 where uname = '".$row['uname']."'"; 32 mysql_query($sql,$conn); 33 34 //把此激活码作废 35 $sql = "update activecode set expire = 0 where code = '".$code."'"; 36 echo $sql; 37 mysql_query($sql,$conn); 38 39 echo "恭喜您,您已激活成功,^_^"; 40 41 ?>

mail_active.php

测试:

1.数据库的表格(数据库的建表代码在前面已给出):

如图所示,总共两张表格,一张是用户注册的表,另一张是存储用户激活码和激活码有效时间的表。

20150323 PHP模拟邮件激活注册用户_第1张图片

 

2.模拟创建用户

运行mail_create.php,来模拟创建用户,若是创建成功,则会发送激活邮件至相应的邮箱,最后打印ok

20150323 PHP模拟邮件激活注册用户_第2张图片

qq提示收到邮件:

20150323 PHP模拟邮件激活注册用户_第3张图片

 

3.进入QQ邮件并激活用户

20150323 PHP模拟邮件激活注册用户_第4张图片

点击链接,激活,为了方便调试,我特意打印出sql语句。

20150323 PHP模拟邮件激活注册用户_第5张图片

 

4.进入MySQL中查询表中的数据

20150323 PHP模拟邮件激活注册用户_第6张图片

可以发现,激活成功之后,已经将status置为1,并且将激活码有效时间修改为0.

 

 

很简单吧!加油! ^_^

 

你可能感兴趣的:(PHP网站开发)