1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP邮件发送验证功能

作者:用户 来源:互联网 时间:2017-12-01 14:40:58

php邮件验证发送功能

PHP邮件发送验证功能 - 摘要: 本文讲的是PHP邮件发送验证功能, 第一步:建立数据库 把下面数据库复制粘贴在一个记事本,然后在PHPMyAdmin创建一个新的数据库并导入下面数据。 – 表的结构 `registered_members`–CREATE TABLE `registered_members




第一步:建立数据库


把下面数据库复制粘贴在一个记事本,然后在PHPMyAdmin创建一个新的数据库并导入下面数据。


– 表的结构 `registered_members`

CREATE TABLE `registered_members` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default ”,
`email` varchar(65) NOT NULL default ”,
`password` varchar(65) NOT NULL default ”,
`country` varchar(65) NOT NULL default ”,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



– 导出表中的数据 `registered_members`

– ——————————————————–

– 表的结构 `temp_members_db`


CREATE TABLE `temp_members_db` (
`confirm_code` varchar(65) NOT NULL default ”,
`name` varchar(65) NOT NULL default ”,
`email` varchar(65) NOT NULL default ”,
`password` varchar(15) NOT NULL default ”,
`country` varchar(65) NOT NULL default ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



– 导出表中的数据 `temp_members_db`


第二步:建立数据库连接


请把下面代码复制到你的文本编编译器里面,并命名:config.php


<?php


$host=”Hostname”; // Host name
$username=”Username”; // Mysql username
$password=”Password”; // Mysql password
$db_name=”DB name”; // Database name


//Connect to server and select database.
mysql_connect(“$host”, “$username”, “$password”)or die(“cannot connect to server”);
mysql_select_db(“$db_name”)or die(“cannot select DB”);


?>


第三步:注册页面
请把下面代码复制到你的文本编辑器里面,并命名:signup.php








注册


用户名
:



邮箱
:



密码
:



国家
:















第四步:数据插入到数据和邮件发送


请把下面代码复制到你的文本编辑器里面,并命名:signup_ac.php


<?php
include(‘config.php’);


// table name
$tbl_name=temp_members_db;


// Random confirmation code
$confirm_code=md5(uniqid(rand()));


// values sent from form
$name=$_POST['name'];
$email=$_POST['email'];
$country=$_POST['country'];


// Insert data into database
$sql=”INSERT INTO $tbl_name(confirm_code, name, email, password, country)VALUES(‘$confirm_code’, ‘$name’, ‘$email’, ‘$password’, ‘$country’)”;
$result=mysql_query($sql);


// if suceesfully inserted data into database, send confirmation link to email
if($result){


// —————- SEND MAIL FORM —————-


// send e-mail to …
$to=$email;


// Your subject
$subject=”Your confirmation link here”;


// From
$header=”from: your name ”;


// Your message
$message=”Your Comfirmation link rn”;
$message.=”Click on this link to activate your account rn”;
$message.=”http://www.yourweb.com/confirmation.php?passkey=$confirm_code”;


// send email
$sentmail = mail($to,$subject,$message,$header);


}


// if not found
else {
echo “Not found your email in our database”;
}


// if your email succesfully sent
if($sentmail){
echo “Your Confirmation link Has Been Sent To Your Email Address.”;
}
else {
echo “Cannot send Confirmation link to your e-mail address”;
}


?>


第五步:验证


请把下面代码复制到你的文本编辑器里面,并命名:confirmation.php


<?php
include(‘config.php’);


// Passkey that got from link
$passkey=$_GET['passkey'];


$tbl_name1=”temp_members_db”;


// Retrieve data from table where row that match this passkey
$sql1=”SELECT * FROM $tbl_name1 WHERE confirm_code =’$passkey’”;
$result1=mysql_query($sql1);


// If successfully queried
if($result1){


// Count how many row has this passkey
$count=mysql_num_rows($result1);


// if found this passkey in our database, retrieve data from table “temp_members_db”
if($count==1){


$rows=mysql_fetch_array($result1);
$name=$rows['name'];
$email=$rows['email'];
$password=$rows['password'];
$country=$rows['country'];


$tbl_name2=”registered_members”;


// Insert data that retrieves from “temp_members_db” into table “registered_members”
$sql2=”INSERT INTO $tbl_name2(name, email, password, country)VALUES(‘$name’, ‘$email’, ‘$password’, ‘$country’)”;
$result2=mysql_query($sql2);
}


// if not found passkey, display message “Wrong Confirmation code”
else {
echo “Wrong Confirmation code”;
}


// if successfully moved data from table”temp_members_db” to table “registered_members” displays message “Your account has been activated” and don’t forget to delete confirmation code from table “temp_members_db”
if($result2){


echo “Your account has been activated”;


// Delete information of this user from table “temp_members_db” that has this passkey
$sql3=”DELETE FROM $tbl_name1 WHERE confirm_code = ‘$passkey’”;
$result3=mysql_query($sql3);


}


}
?>


注意:


如果没有邮箱服务器的,会出现如下面提示之类的东西:


Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() inE:wampwwwmailverificationsignup_ac.php on line 39
Cannot send Confirmation link to your e-mail address


不用慌,这说明你的数据已经被写进数据库了。


你可以用以下方法去通过验证:


先复制这个URL到你的浏览器:http://www.你的网站.com/confirmation.php?passkey=


然后到你的数据库里面把confirm_code复制粘贴在passkey=后面,并回车,会出现提示的:Your account has been activated!


恭喜你了!你的邮件验证系统就完成了。如果有什么问题的,欢迎随时留言,回以最快的速度解决你的问题。由于时间关系,英文就不做翻译了。


原文出处:http://blog.jiexi-it.com/?p=72

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 邮件 , 验证 , 发送 功能 ,以便于您获取更多的相关知识。