1.建立一个数据库连接文件conn.php
2.建立一个注册账号
3.建立一个判断激活地址的文件
点击(此处)折叠或打开
- <?php
- $conn = mysql_connect('localhost','root','123456');
- mysql_select_db('email',$conn);
- mysql_query('set names utf8',$conn);
- ?>
点击(此处)折叠或打开
- <?php
- /*create table user(
- uid int primary key auto_increment,
- uname char(32) not null default '',
- pass char(32) not null default '',
- email char(32) not null default '',
- status tinyint not null default 0
- )engine myisam charset utf8;
-
- create table activecode(
- cid int primary key auto_increment,
- uname char(32) not null default '',
- code char(16) not null default '',
- expire int not null default 0
- )engine myisam charset utf8;
- */
- /*模拟注册用户+创建激活码+发送激活码
- 思路:
- 1.连接数据库
- 2.insert用户表
- 3.随机生成激活码并insert activecode表
- 4.把生成的激活码发送到注册注册邮箱
- */
- require ('./conn.php');
- require ('./PHPMailer/class.phpmailer.php');
- $str = '1234567890abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ!@#$%';
- $uname = substr(str_shuffle(substr($str,0,52)),0,8);
- $email = '1359962567@qq.com';
- $sql = "insert into user(uname,email) values('$uname','$email');";
- mysql_query($sql,$conn);
- $code = substr(str_shuffle(substr($str,0,52)),0,8); //循环一个8位账号
- $expire = time()+24*3600;
- $sql = "insert into activecode(uname,code,expire)value('$uname','$code','$expire')";
- mysql_query($sql,$conn);
-
- //发送验证码
- $mail = new PHPMailer();
- $mail->IsSMTP(); // 启用SMTP
- $mail->Host = "smtp.163.com"; //SMTP服务器
- $mail->SMTPAuth = true; //开启SMTP认证
- $mail->Username = "xxxxx@163.com"; // SMTP用户名
- $mail->Password = "xxxxx"; // SMTP密码
- $mail->From = "xxxxx@163.com"; //发件人地址
- $mail->FromName = "Mailer"; //发件人
- $mail->AddAddress("1359962567@qq.com", "Josh Adams"); //添加收件人
- $mail->Subject = "$uname,欢迎你,请激活账号"; //邮件主题
- $mail->Body = "请点击http://localhost/youjianjihuo/02.php?code=$code 来激活您的账号"; //邮件内容
-
- if(!$mail->Send()){
- echo "error";
- }else{
- echo "ok";
- }
- ?>
点击(此处)折叠或打开
- <?php
- /*
- 1.从地址栏获取激活码
- 2.查询该激活码
- 2.1激活码不存在
- 2.2激活码过期
- 2.3激活码正常,修改user的status状态为1
- 2.4把激活码的expire改成-1
- */
- require ('./conn.php');
- header("content-type:text/html; charset=utf-8");
- //从地址栏获取激活码
- $code = $_GET['code'];
- //对激活码做出判断
- if(strlen($code) !=8 ){
- die('激活码错误aaa');
- }
- $sql = "select * from activecode where code = '$code'";
- $rs = mysql_query($sql,$conn);
- $row = mysql_fetch_assoc($rs); //取结果
- if(empty($row)){
- die('激活码错误');
- }
- if(time()>$row['expire']){
- exit('激活码已过期,请重新申请');
- }
- //激活用户
- $sql = "update user set status=1 where uname ='$row[uname]' ";
- mysql_query($sql,$conn);
- echo "激活成功,请登录";
- //
- $sql = "update activecode set expire=0 where code ='$code' ";
- mysql_query($sql,$conn);
- ?>
转载于:https://blog.51cto.com/shenliyang/1364853