PHP郵件發送印證功能

來源:互聯網
上載者:User
PHP郵件發送驗證功能

第一步:建立資料庫

把下面資料庫複寫粘貼在一個記事本,然後在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

$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

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 \r\n”;
$message.=”Click on this link to activate your account \r\n”;
$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

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:\wamp\www\mailverification\signup_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

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.