用Php编写注册后Email激活验证的实例代码
总共需两个页面,register.php和verify.php
1.用户注册表格register.php
<html>
<body>
<formaction="register.php"method="post"name="register">
用户名:<inputtype="text"name="username"/>
密码:<inputtype="password"name="password"/>
电子邮件:<inputtype="text"name="email"/>
<inputtype="submit"value="注册"/>
</form>
</body>
</html>
2.创建用户数据表格Users
CREATETABLEIFNOTEXISTS`users`(
`id`int(11)NOTNULLauto_increment,
`status`varchar(20)NOTNULL,
`username`varchar(20)NOTNULL,
`password`varchar(20)NOTNULL,
`email`varchar(20)NOTNULL,
`activationkey`varchar(100)NOTNULL,
PRIMARYKEY (`id`),
UNIQUEKEY`username`(`username`),
UNIQUEKEY`email`(`email`),
UNIQUEKEY`activationkey`(`activationkey`)
)ENGINE=MyISAM DEFAULTCHARSET=latin1AUTO_INCREMENT=9;
3.创建验证码用户注册信息存入数据表
我们使用状态‘verify"来表示尚未激活的用户。
$username=mysql_real_escape_string($_POST[username]); $password=mysql_real_escape_string($_POST[password]); $email=mysql_real_escape_string($_POST[email]); $sql="INSERTINTOusers(username,password,email,activationkey,status)VALUES("$username","$password","$email","$activationKey","verify")";
4.发送验证码 ##SendactivationEmail $to =$_POST[email]; $subject="YOURWEBSITE.comRegistration"; $message="Welcometoourwebsite!\r\rYou,orsomeoneusingyouremailaddress,hascompletedregistrationatYOURWEBSITE.com.Youcancompleteregistrationbyclickingthefollowinglink:\rhttp://www.YOURWEBSITE.com/verify.php?$activationKey\r\rIfthisisanerror,ignorethisemailandyouwillberemovedfromourmailinglist.\r\rRegards,\YOURWEBSITE.comTeam"; $headers="From:noreply@YOURWEBSITE.com"."\r\n". "Reply-To:noreply@YOURWEBSITE.com"."\r\n". "X-Mailer:PHP/".phpversion(); mail($to,$subject,$message,$headers);
5.验证激活代码verify.php $query="SELECT*FROMusers"; $result=mysql_query($query)ordie(mysql_error()); while($row=mysql_fetch_array($result)){ if($queryString==$row["activationkey"]){ echo"Congratulations!".$row["username"]."isnowtheproudnewownerofaYOURWEBSITE.comaccount."; $sql="UPDATEusersSETactivationkey="",status="activated"WHERE(id=$row[id])"; if(!mysql_query($sql)){ die("Error:".mysql_error()); } //到这里,用户已经完全激活了账号,你可以将页面跳转到登陆后的界面了 } }//endofwhile
$activationKey= mt_rand().mt_rand().mt_rand().mt_rand().mt_rand();
echo"Anemailhasbeensentto$_POST[email]withanactivationkey.Pleasecheckyourmailtocompleteregistration.";
如果验证码相同,则激活用户。
$queryString=$_SERVER["QUERY_STRING"];
相关文章