用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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
php中截取字符串支持utf-8
Jan 18 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
php接口技术实例详解
Dec 07 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 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
session在PHP大型web应用中的使用
2011/06/25 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Javascript实现关闭广告效果
2021/01/29 Javascript
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
sklearn的predict_proba使用说明
2020/06/28 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
招商专员岗位职责
2014/02/08 职场文书
求职教师自荐书
2014/06/19 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
学校师德师风整改方案
2014/10/28 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
MySQL读取JSON转换的方式
2022/03/18 MySQL
python井字棋游戏实现人机对战
2022/04/28 Python
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android