第一步:建立数据库
把下面数据库复制粘贴在一个记事本,然后在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
<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=”重设” /></td>
</tr>
</tbody>
</table>
</form></td>
</tr>
</tbody>
</table>
第四步:数据插入到数据和邮件发送
请把下面代码复制到你的文本编辑器里面,并命名: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.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:\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!
恭喜你了!你的邮件验证系统就完成了!如果有什么问题的,欢迎随时留言,回以最快的速度解决你的问题。由于时间关系,英文就不做翻译了。