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


Posted in PHP onMarch 11, 2013

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

1. 用户注册表格 register.php

 <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>

2. 创建用户数据表格 Users

 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 ;

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="INSERT INTO users (username, password, email, activationkey, status) VALUES ('$username', '$password', '$email', '$activationKey', 'verify')";

4. 发送验证码

 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 = '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 * 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 = '', status='activated' WHERE (id = $row[id])";          
        if (!mysql_query($sql)) { 
           die('Error: ' . mysql_error()); 
        }           
         // 到这里,用户已经完全激活了账号,你可以将页面跳转到登陆后的界面了   
     } 
   } // end of while
PHP 相关文章推荐
php db类库进行数据库操作
Mar 19 PHP
php权重计算方法代码分享
Jan 09 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
PHP echo()函数讲解
Feb 15 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
php 生成唯一id的几种解决方法
Mar 08 #PHP
PHP Directory 函数的详解
Mar 07 #PHP
PHP重定向的3种方式
Mar 07 #PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 #PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 #PHP
php设置编码格式的方法
Mar 05 #PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 #PHP
You might like
PHP抽象类 介绍
2012/06/13 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python使用新浪微博API发送微博的例子
2014/04/10 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python中的random()方法的使用介绍
2015/05/15 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
django 类视图的使用方法详解
2019/07/24 Python
python字符串的index和find的区别详解
2020/06/20 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
网络优化专员求职信
2014/05/04 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
人民调解协议书范本
2014/10/11 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技