PHP+jQuery 注册模块开发详解(7)

<span> <input type="checkbox" checked="checked"> <label for="agree">我同意 <a href="#">" 服务条款 "</a> 和 <a href="#">" 网络游戏用户隐私权保护和个人信息利用政策 "</a> </label> </span>

register.js相应代码:

if($("#agree").prop("checked") == true){ fuwuval = true; } $("#agree").click(function(){ if($("#agree").prop("checked") == true){ fuwuval = true; $("#sub").css("background","#69b3f2"); }else{ $("#sub").css({"background":"#f2f2f2","cursor":"default"}); } });

效果图:

①勾选之后

PHP+jQuery 注册模块开发详解

②未勾选

提交按钮:检测是否所有栏目都填写正确,否则所有填写错误的栏目将给出错误提示。全部填写正确后提交并且发送验证邮件到注册邮箱中,邮件的验证地址在3日后失效

首先在register.js开始部分定义几个参数:nameval,emailval,pwdval,rpwdval,yzmval,fuwuval,全部设为0;当相应栏目符合规定之后,把相应的参数设为true。当所有的参数都为true之后,提交至registerChk.php,否则return false。

register.html相应代码:

<button type="button">立即注册</button>

register.js相应代码:

参数设置:

var nameval,emailval,pwdval,rpwdval,yzmval,fuwuval = 0;

提交事件:

function formsub(){ if(nameval != true || emailval!=true || pwdval!=true || rpwdval!=true || yzmval!=true || fuwuval!=true){ //当邮箱有下拉菜单时点击提交按钮时不会自动收回菜单,因为下面的return false,所以在return false之前判断下拉菜单是否弹出 if(nameval != true && $("#unamechk").val()!=""){ var errorMsg = '请输入用户名'; error($("#namechk"),errorMsg); } if($(".autoul").show()){ $(".autoul").hide(); } //以下是不会自动获得焦点的栏目如果为空时,点击注册按钮给出错误提示 if($("#uemail").val() == ""){ var errorMsg = '邮箱不能为空'; error($("#uemailchk"),errorMsg); } if($("#upwd").val() == ""){ var errorMsg = '密码不能为空'; error($("#upwdchk"),errorMsg); } if($("#rupwd").val() == ""){ var errorMsg = '请再次输入你的密码'; error($("#rupwdchk"),errorMsg); } if($("#yzm").val() == ""){ var errorMsg = '验证码不能为空'; error($("#yzmchk"),errorMsg); } }else{ $("#register-form").submit(); } } $("#sub").click(function(){ formsub(); });

显示效果:

有栏目为空时点击提交按钮

注册以及发送邮件

使用了Zend Framework( 1.11.11 )中的zend_email组件。Zend Framework的下载地址是:https://packages.zendframework.com/releases/ZendFramework-1.11.11/ZendFramework-1.11.11.zip。在Zend Framework根目录下library路径下,剪切Zend文件至服务器下,在注册页面中引入Zend/Mail/Transport/Smtp.php和Zend/Mail.php两个文件。

当点击提交按钮时,表单将数据提交至register_chk.php,然后页面在当前页跳转至register_back.html,通知用户注册结果并且进邮箱激活。

验证邮箱的地址参数使用用户名和一个随机生成的key。

register_chk.php:

<?php include_once 'conn/conn.php'; include_once 'Zend/Mail/Transport/Smtp.php'; include_once 'Zend/Mail.php'; //激活key,生成的随机数 $key = md5(rand()); //先写入数据库,再发邮件 //写入数据库 //判断是否开启magic_quotes_gpc if(get_magic_quotes_gpc()){ $postuname = $_POST['uname']; $postupwd = $_POST['upwd']; $postuemail = $_POST['uemail']; }else{ $postuname = addslashes($_POST['uname']); $postupwd = addslashes($_POST['upwd']); $postuemail = addslashes($_POST['uemail']); } function check_input($value){ // 如果不是数字则加引号 if (!is_numeric($value)){ $value = mysql_real_escape_string($value); } return $value; } $postuname = check_input($postuname); $postupwd = check_input($postupwd); $postuemail = check_input($postuemail); $sql = "insert into user(uname,upwd,uemail,activekey)values('".trim($postuname)."','".md5(trim($postupwd))."','".trim($postuemail)."','".$key."')"; $num = $conne->uidRst($sql); if($num == 1){ //插入成功时发送邮件 //用户激活链接 $url = 'http://'.$_SERVER['HTTP_HOST'].'/php/myLogin/activation.php'; //urlencode函数转换url中的中文编码 //带反斜杠 $url.= '?name='.urlencode(trim($postuname)).'&k='.$key; //定义登录使用的邮箱 $envelope = 'dee1566@126.com'; //激活邮件的主题和正文 $subject = '激活您的帐号'; $mailbody = '注册成功,<a href="'https://www.jb51.net/article/.$url.'" target="_blank">请点击此处激活帐号</a>'; //发送邮件 //SMTP验证参数 $config = array( 'auth'=>'login', 'port' => 25, 'username'=>'dee1566@126.com', 'password'=>'你的密码' ); //实例化验证的对象,使用gmail smtp服务器 $transport = new Zend_Mail_Transport_Smtp('smtp.126.com',$config); $mail = new Zend_Mail('utf-8'); $mail->addTo($_POST['uemail'],'获取用户注册激活链接'); $mail->setFrom($envelope,'发件人'); $mail->setSubject($subject); $mail->setBodyHtml($mailbody); $mail->send($transport); echo "<script>self.location=\"templets/register_back.html\";</script>"; }else{ echo "<script>self.location=\"templets/register_back.html?error=1\";</script>"; } ?>

邮箱中收取的邮件截图:

PHP+jQuery 注册模块开发详解

然后点击邮箱中的链接进行激活,把数据库中的active设置为1。

activation.php:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3bf0dc2896d30d8f7bb767f0d2212b21.html