用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 email邮箱正则
Oct 08 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
php ajax 静态分页过程形式
Sep 02 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php Session存储到Redis的方法
Nov 04 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP 字符串操作入门教程
2006/12/06 PHP
对Session和Cookie的区分与解释
2007/03/16 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python找出因数与质因数的方法
2019/07/25 Python
如何利用python生成MD5并去重
2020/12/07 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
高级护理专业毕业生推荐信
2013/12/25 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android