首页>>表单>>PHP激活用户注册验证邮箱(2016-05-12)

PHP激活用户注册验证邮箱

PHP激活用户注册验证邮箱
赞赏支持
立刻微信赞赏支持 关闭

 

XML/HTML Code
  1. <div class="demo">  
  2.   
  3.                 <form id="reg" action="register.php" method="post" onsubmit="return chk_form();">  
  4.                     <p>用户名:<input type="text" class="input" name="username" id="user"></p>  
  5.                     <p>密   码:<input type="password" class="input" name="password" id="pass"></p>  
  6.                     <p>E-mail:<input type="text" class="input" name="email" id="email"></p>  
  7.                     <p><input type="submit" class="btn" value="提交注册"></p>  
  8.                 </form>  
  9.             </div>  

 

JavaScript Code
  1. <script type="text/javascript">  
  2.                     function chk_form() {  
  3.                         var user = document.getElementById("user");  
  4.                         if (user.value == "") {  
  5.                             alert("用户名不能为空!");  
  6.                             return false;  
  7.                         }  
  8.                         var pass = document.getElementById("pass");  
  9.                         if (pass.value == "") {  
  10.                             alert("密码不能为空!");  
  11.                             return false;  
  12.                         }  
  13.                         var email = document.getElementById("email");  
  14.                         if (email.value == "") {  
  15.                             alert("Email不能为空!");  
  16.                             return false;  
  17.                         }  
  18.                         var preg = /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/; //匹配Email  
  19.                         if (!preg.test(email.value)) {  
  20.                             alert("Email格式错误!");  
  21.                             return false;  
  22.                         }  
  23.                     }  
  24.         </script>  

 register.php

 

PHP Code
  1. header("Content-type:text/html;charset=utf-8");  
  2.   
  3. require('../../conn.php');  
  4.   
  5.    
  6.   
  7. $username = stripslashes(trim($_POST['username']));  
  8.   
  9.    
  10.   
  11. //检测用户名是否存在  
  12.   
  13. $query = mysql_query("select id from t_user where username='$username'");  
  14.   
  15. $num = mysql_num_rows($query);  
  16.   
  17. if ($num == 1) {  
  18.   
  19.     echo '<script>alert("用户名已存在,请换个其他的用户名");window.history.go(-1);</script>';  
  20.   
  21.     exit;  
  22.   
  23. }  
  24.   
  25. $password = md5(trim($_POST['password']));  
  26.   
  27. $email = trim($_POST['email']);  
  28.   
  29. $regtime = time();  
  30.   
  31.    
  32.   
  33. $token = md5($username . $password . $regtime); //创建用于激活识别码  
  34.   
  35. $token_exptime = time() + 60 * 60 * 24; //过期时间为24小时后  
  36.   
  37.    
  38.   
  39. $sql = "insert into `t_user` (`username`,`password`,`email`,`token`,`token_exptime`,`regtime`) values ('$username','$password','$email','$token','$token_exptime','$regtime')";  
  40.   
  41.    
  42.   
  43. mysql_query($sql);  
  44.   
  45.    
  46.   
  47. if (mysql_insert_id()) {//写入成功,发邮件  
  48.   
  49.     require 'class.phpmailer.php';  
  50.   
  51.     try {  
  52.   
  53.     $smtpserver ="smtp.163.com";  
  54.   
  55.     $emailaddress"";  
  56.   
  57.     $emailpassword"";  
  58.   
  59.     $email_address$email;  
  60.   
  61.       
  62.   
  63.     $mail = new PHPMailer(true); //New instance, with exceptions enabled  
  64.   
  65.     $body="亲爱的" . $username . ":<br/>感谢您在我站注册了新帐号。<br/>请点击链接激活您的帐号。<br/><a href='http://www.freejs.net/demo/557/active.php?verify=" . $token . "' target='_blank'>http://www.freejs.net/demo/557/active.php?verify=" . $token . "</a><br/>如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接24小时内有效。<br/>如果此次激活请求非你本人所发,请忽略本邮件。";  
  66.   
  67.       
  68.   
  69.     $body             = preg_replace('/\\/',''$body); //Strip backslashes  
  70.   
  71.    
  72.   
  73.     $mail->IsSMTP();                           // tell the class to use SMTP  
  74.   
  75.     $mail->SMTPAuth   = true;                  // enable SMTP authentication  
  76.   
  77.     $mail->Port       = 25;                    // set the SMTP server port  
  78.   
  79.     $mail->Host       = $smtpserver// SMTP server  
  80.   
  81.     $mail->Username   = $emailaddress;     // SMTP server username  
  82.   
  83.     $mail->Password   = $emailpassword;            // SMTP server password  
  84.   
  85.     $mail->CharSet = "utf-8"//设置字符集编码  
  86.   
  87.     $mail->IsSendmail();  // tell the class to use Sendmail  
  88.   
  89.     //如果配置了sendmail这里就用sendmail,本地测试把这个注释掉就可以了  
  90.   
  91.    
  92.   
  93.     $mail->AddReplyTo($emailaddress,"freejs.net");  
  94.   
  95.    
  96.   
  97.     $mail->From       = $emailaddress;  
  98.   
  99.     $mail->FromName   = "freejs.net";  
  100.   
  101.    
  102.   
  103.     $to = $email_address;  
  104.   
  105.    
  106.   
  107.     $mail->AddAddress($to);  
  108.   
  109.    
  110.   
  111.     $mail->Subject  = "用户帐号激活";  
  112.   
  113.    
  114.   
  115.     $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"// optional, comment out and test  
  116.   
  117.     $mail->WordWrap   = 80; // set word wrap  
  118.   
  119.    
  120.   
  121.     $mail->MsgHTML($body);  
  122.   
  123.    
  124.   
  125.     $mail->IsHTML(true); // send as HTML  
  126.   
  127.    
  128.   
  129.     $mail->Send();  
  130.   
  131.     echo "<div class='sendmail_ok'>恭喜您,注册成功!<br/>请登录到您的邮箱及时激活您的帐号</div>";  
  132.   
  133.     } catch (phpmailerException $e) {  
  134.   
  135.         echo $e->errorMessage();  
  136.   
  137.     }  
  138.   
  139.       
  140.   
  141.     //发送邮件结束  
  142.   
  143. }  

 


原文地址:http://www.freejs.net/article_biaodan_557.html