|
第一步:建立數(shù)據(jù)庫
把下面數(shù)據(jù)庫復(fù)制粘貼在一個記事本,然后在PHPMyAdmin創(chuàng)建一個新的數(shù)據(jù)庫并導(dǎo)入下面數(shù)據(jù)。
– 表的結(jié)構(gòu) `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 ;
– – 導(dǎo)出表中的數(shù)據(jù) `registered_members` – – ——————————————————– – – 表的結(jié)構(gòu) `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;
– – 導(dǎo)出表中的數(shù)據(jù) `temp_members_db` –
第二步:建立數(shù)據(jù)庫連接
請把下面代碼復(fù)制到你的文本編編譯器里面,并命名: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”);
?>
第三步:注冊頁面 請把下面代碼復(fù)制到你的文本編輯器里面,并命名:signup.php <table border=”0″ cellspacing=”0″ cellpadding=”0″ width=”350″ align=”center”> <tbody> <tr> <td><form action=”signup_ac.php” method=”post”> <table border=”0″ cellspacing=”4″ cellpadding=”0″ width=”100%”> <tbody> <tr> <td colspan=”3″><strong>注冊</strong></td> </tr> <tr> <td width=”76″>用戶名</td> <td width=”3″>:</td> <td width=”305″><input id=”name” name=”name” size=”30″ type=”text” /></td> </tr> <tr> <td>郵箱</td> <td>:</td> <td><input id=”email” name=”email” size=”30″ type=”text” /></td> </tr> <tr> <td>密碼</td> <td>:</td> <td><input id=”password” name=”password” size=”30″ type=”password” /></td> </tr> <tr> <td>國家</td> <td>:</td> <td><input id=”country” name=”country” size=”30″ type=”text” /></td> </tr> <tr> <td></td> <td></td> <td><input name=”Submit” type=”submit” value=”注冊” /> <input name=”Reset” type=”reset” value=”重設(shè)” /></td> </tr> </tbody> </table> </form></td> </tr> </tbody> </table>?
第四步:數(shù)據(jù)插入到數(shù)據(jù)和郵件發(fā)送
請把下面代碼復(fù)制到你的文本編輯器里面,并命名: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 email>”;
// Your message $message=”Your Comfirmation link \r\n”; $message.=”Click on this link to activate your account \r\n”; $message.=”http://www./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”; }
?>
第五步:驗證
請把下面代碼復(fù)制到你的文本編輯器里面,并命名: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);
}
} ?>
注意:
如果沒有郵箱服務(wù)器的,會出現(xiàn)如下面提示之類的東西:
Warning: mail() [function.mail]: Failed to connect to mailserver at “l(fā)ocalhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in E:\wamp\www\mailverification\signup_ac.php on line 39 Cannot send Confirmation link to your e-mail address
不用慌,這說明你的數(shù)據(jù)已經(jīng)被寫進數(shù)據(jù)庫了。
你可以用以下方法去通過驗證:
先復(fù)制這個URL到你的瀏覽器:http://www.你的網(wǎng)站.com/confirmation.php?passkey=
然后到你的數(shù)據(jù)庫里面把confirm_code復(fù)制粘貼在passkey=后面,并回車,會出現(xiàn)提示的:Your account has been activated!
恭喜你了!你的郵件驗證系統(tǒng)就完成了!如果有什么問題的,歡迎隨時留言,回以最快的速度解決你的問題。由于時間關(guān)系,英文就不做翻譯了。
|