用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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
php实现jQuery扩展函数
Oct 30 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
基于PHP静态类的原罪详解
May 06 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 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
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
幼儿教师培训感言
2014/03/08 职场文书
总经理任命书范本
2014/06/05 职场文书
诉讼授权委托书
2014/10/15 职场文书
2014年个人售房协议书
2014/10/30 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
中学语文教学反思
2016/02/16 职场文书