av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

PHP郵件發(fā)送驗證

時間:2025-03-16 07:42:32 php語言 我要投稿
  • 相關(guān)推薦

PHP郵件發(fā)送驗證

  由于項目中需要做一個郵箱驗證。一直在網(wǎng)上找各種資料,出現(xiàn)各種發(fā)送不了郵箱。最后在我堅持下終于可以在使用qq發(fā)送驗證郵箱了。想了解更多相關(guān)信息,請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

PHP郵件發(fā)送驗證

  1,先去qq郵箱中的 點擊設(shè)置-》點擊帳戶-》將smtp的權(quán)限開啟

  如果是設(shè)置POP3和SMTP的SSL加密方式,則端口如下:

  POP3服務(wù)器(端口995)

  SMTP服務(wù)器(端口465或587)。

  2,查看你的Openssl和Socketsd是否支持:PHP -m查看

  這里寫圖片描述

  利用OpenSSL庫對Socket傳輸進(jìn)行安全加密。

  3,表單部分

  <form id="reg" action="register.php" method="post">

  <p>用戶名:<input type="text" class="input" name="username" id="user"></p>

  <p>密 碼:<input type="password" class="input" name="password" id="pass"></p>

  <p>E-mail:<input type="text" class="input" name="email" id="email"></p>

  <p><input type="submit" class="btn" value="提交注冊"></p>

  </form>

  4,表單提交部分

  <!DOCTYPE HTML>

  <html>

  <head>

  <meta charset="utf-8">

  <title>PHP用戶注冊郵箱驗證激活帳號</title>

  <style type="text/css">

  .demo {margin: 20px auto; width: 400px; border: 1px solid #ccc; line-height: 50px;text-align: center;}

  .input {width: 150px; height: 25px; border: 1px solid #ccc;}

  .btn {padding: 5px 15px; font-size: 16px; font-family: '微軟雅黑'; background:#ff0066; color: #fff; border: none;}

  </style>

  <script type="text/javascript">

  function chk_form(){

  var user = document.getElementById("user");

  if(user.value==""){

  alert("用戶名不能為空!");

  return false;

  //user.focus();

  }

  var pass = document.getElementById("pass");

  if(pass.value==""){

  alert("密碼不能為空!");

  return false;

  //pass.focus();

  }

  var email = document.getElementById("email");

  if(email.value==""){

  alert("Email不能為空!");

  return false;

  //email.focus();

  }

  var preg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; //匹配Email

  if(!preg.test(email.value)){

  alert("Email格式錯誤!");

  return false;

  //email.focus();

  }

  }

  </script>

  </head>

  <body>

  <p id="main">

  <p class="demo">

  <form id="reg" action="register.php" method="post" onsubmit="return chk_form();">

  用戶名:<input type="text" class="input" name="username" id="user"><br>

  密&nbsp;碼:<input type="password" class="input" name="password" id="pass"><br>

  郵&nbsp;箱:<input type="text" class="input" name="email" id="email"><br>

  <input type="submit" class="btn" value="提交注冊">

  </form>

  </p>

  </p>

  </body>

  </html>

  5,如果注冊成功,發(fā)送郵箱驗證碼,這里負(fù)責(zé)發(fā)送。

  register.php部分

  <?php

  include_once("connect.php");//連接數(shù)據(jù)庫

  // include_once("smtp.class.php");//郵件發(fā)送類

  $username = stripslashes(trim($_POST['username']));

  $sql ="select id from t_user where username='{$username}'";

  // $query = mysqli_query("'");

  $res  = mysqli_query($link, $sql);

  if($res && mysqli_num_rows($res)>0){

  echo '用戶名已存在,請換個其他的用戶名';

  exit;

  }

  //構(gòu)造激活碼

  $password = md5(trim($_POST['password'])); //加密密碼

  $email = trim($_POST['email']); //郵箱

  $regtime = time();

  $token = md5($username.$password.$regtime); //創(chuàng)建用于激活識別碼

  $token_exptime = time()+60*60*24;//過期時間為24小時后

  $sql = "insert into `t_user` (`username`,`password`,`email`,`token`,`token_exptime`,`regtime`)

  values ('$username','$password','$email','$token','$token_exptime','$regtime')";

  // echo $sql;

  $res1 = mysqli_query($link, $sql);

  if(mysqli_insert_id($link)){

  //郵件發(fā)送

  require 'class.phpmailer.php';

  require 'class.smtp.php';

  $mail = new PHPMailer;

  //$mail->SMTPDebug = 3; // Enable verbose debug output

  $mail->isSMTP(); // Set mailer to use SMTP

  $mail->Host = 'smtp.qq.com'; // Specify main and backup SMTP servers

  $mail->SMTPAuth = true; // Enable SMTP authentication

  $mail->Username = '1391241655@qq.com'; // SMTP username

  $mail->Password = 'dzrxckopdnxuhjhf'; // SMTP password

  $mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted

  $mail->Port = 465; // TCP port to connect to

  $mail->setFrom('1391241655@qq.com', '發(fā)件人');

  $email = $_POST['email'];

  $mail->addAddress($email, '.'); // Add a recipient

  // Name is optional

  $mail->addReplyTo($email, 'php');

  //$mail->addCC('cc@example.com');

  //$mail->addBCC('bcc@example.com');

  $mail->isHTML(true); // Set email format to HTML

  $mail->Subject = '標(biāo)題';

  $mail->Body = "發(fā)送的內(nèi)容";

  // $mail->AltBody = '發(fā)送的內(nèi)容22';

  if(!$mail->send()) {

  //輸出錯誤信息

  echo 'Mailer Error: ' . $mail->ErrorInfo;

  return false;

  } else {

  echo 'Message has been sent'; //成功輸出

  return true;

  }

  }

  ?>

  6 ,驗證部分

  include_once("connect.php");//連接數(shù)據(jù)庫

  $verify = stripslashes(trim($_GET['verify']));

  $nowtime = time();

  $sql = "select id,token_exptime from t_user where status='0' and  `token`='$verify'";

  $res= mysql_query($link, $sql);

  $row = mysql_fetch_array($res);

  if($row){

  if($nowtime>$row['token_exptime']){ //24hour

  $msg = '您的激活有效期已過,請登錄您的帳號重新發(fā)送激活郵件.';

  }else{

  $sql1 ="update t_user set status=1 where id=".$row['id']";

  $res1 =  mysqli_query($link, $sql1);

  if(mysqli_affected_rows($link)!=1) die(0);

  $msg = '激活成功!';

  }

  }else{

  $msg = 'error.';

  }

  echo $msg;

【PHP郵件發(fā)送驗證】相關(guān)文章:

使用PHP發(fā)送郵件的兩種方法06-24

Java 發(fā)送郵件11-09

PHP 表單驗證方法11-01

如何使用JSP來發(fā)送郵件07-04

php如何實現(xiàn)驗證碼06-13

php實現(xiàn)驗證碼制作08-12

php編程必學(xué)之表單驗證10-31

php常用的驗證類以及正則實例08-27

php驗證碼代碼怎么寫09-26