用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和AJAX创建RSS聚合器的代码
Mar 13 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
thinkPHP查询方式小结
Jan 09 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
PHP实现的函数重载功能示例
Aug 03 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 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汉字转换拼音的类
2013/06/18 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
使用js实现数据格式化
2014/12/03 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
全面了解js中的script标签
2016/07/04 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
js的三种继承方式详解
2017/01/21 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
Intersport西班牙:在线体育商店
2019/11/06 全球购物
Internet体系结构
2014/12/21 面试题
火车来了教学反思
2014/02/11 职场文书
法定代表人授权委托书
2014/04/04 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
Mysql Show Profile
2021/04/05 MySQL
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL