[教程+分享]具有良好体验度的Web注册系统 |
*项目名称:具有良好体验度的Web注册系统 这里是所有文件的打包下载(包括所有文件,图片,数据库等,解压后请在IIS下测试) 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> <head> <meta http-equiv="Content-Type" c /> <title>草履虫---简易AJAX注册页面</title> <link href="reg.css" type="text/css" rel="stylesheet" /> <script src="detect.js" type="text/javascript"></script> <script src="ajax.js" type="text/javascript"></script> </head> <body > <ul> <li id="title">草履虫---Web注册系统</li> <li class="underline"> <label>注册用户名: <input type="text" maxlength="16" /> </label> <span>支持汉字,单词,数字,敏感字符屏蔽</span> </li> <li> <label>注册密码: <input type="password" /> </label> <span>密码在6-16位之间,敏感字符屏蔽</span> </li> <li class="underline"> <label>重复密码: <input type="password" maxlength="16" /> </label> <span></span> </li> <li class="underline"> <label>邮箱: <input type="text" /> </label> <span>email是联系重要手段</span> </li> <li class="underline">验证码: <input type="text" maxlength="5" /> <label> <img src="getcode.asp" id="src" height="18" alt="看不清楚?请点击刷新" /> <span>看不清楚?请点击验证码刷新</span> </label> </li> <li class="underline"> 相关协议: <label ><input type="radio" name="info"/>接受</label> <label ><input type="radio" name="info"/>不接受</label> <input type="button" value="阅读协议" class="button" /> </li> <li class="underline"> <input type="submit" value="注册" class="button setleft" /> <input type="reset" value="重置" class="button" /> <span></span> </li> <li class="copyright">作者:草履虫</li> <li class="copyright">时间:2007-6-28</li> <li class="copyright">联系:caolvchong@gmail.com</li> <li class="copyright">Blog---Web2.0之路:<a href="[url=http://cceer.xmu.edu.cn/blog/%22%3Ehttp://cceer.xmu.edu.cn/blog/%3C/a%3E%3C/li]http://cceer.xmu.edu.cn/blog/">http://cceer.xmu.edu.cn/blog/<;/a></li[/url]> </ul> </body> </html> 2.数据合法性检测detect.js 复制代码 代码如下: var flag=[0,0,0,0,0,0]; var $=function(tagName){ return document.getElementsByTagName(tagName); } //----------接受协议 function accept_info(){ flag[0]=1; check_data(); } //----------拒绝协议 function refuse_info(){ flag[0]=0; check_data(); } //----------重置 function reset_info(){ var info=["支持汉字,单词,数字,敏感字符屏蔽","密码在6-16位之间,敏感字符屏蔽","","email是联系重要手段","看不清楚?请点击验证码刷新"] for(var i=0;i<$("span").length;i++){ $("span").innerHTML=info; flag=0; } for(var i=0;i<$("input").length-3;i++){ $("input").value=""; } check_data(); } //----------邮箱检测 function check_email(email){ var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var b_email=reEmail.test(email); if(b_email){ $("span")[3].innerHTML="<img src=yesok.gif/> 邮箱可用"; flag[1]=1; check_data(); } else{ $("span")[3].innerHTML="<img src=yesno.gif/> 邮箱错误"; flag[1]=0; check_data(); } } //----------密码检测 function check_password(obj){ var pwd=$("input")[1].value; var reChinese=/[\u0391-\uFFE5]+/; var b_chinese=reChinese.test(pwd); var reSpace=/\s+/; var b_space=reSpace.test(pwd); //-------长度测试 if(pwd.length<6){ $("span")[1].innerHTML="<img src=yesno.gif/> 密码长度不能小于6"; flag[2]=0; check_data(); } //-------合法性检测:不能包含汉字 else if(b_chinese){ $("span")[1].innerHTML="<img src=yesno.gif/> 密码不能包含中文"; flag[2]=0; check_data(); } //-------合法性检测:不能包含空格 else if(b_space){ $("span")[1].innerHTML="<img src=yesno.gif/> 密码不能包含空格"; flag[2]=0; check_data(); } //-------合法时显示密码强度 else{ //定义对应的消息提示 var num=getResult(pwd); var msg=new Array("<img src=bad.gif/> 密码强度差","<img src=comm.gif/> 密码强度一般","<img src=good.gif/> 密码强度强壮"); $("span")[1].innerHTML=msg[num]; if($("input")[2].value!=""){ check_pw(); } return flag[2]=1; check_data(); } } //定义检测函数,返回0/1/2分别代表差/一般/强 function getResult(s){ var ls =-1; if (s.match(/[a-z]/ig)){ ls++; } if (s.match(/[0-9]/ig)){ ls++; } if (s.match(/(.[^a-z0-9])/ig)){ ls++; } return ls; } //---------密码一致性检测 function check_pw(){ var pwd=$("input")[1].value.toString(); var check_pwd=$("input")[2].value.toString(); if(flag[2]==1){ if(pwd==check_pwd){ $("span")[2].innerHTML="<img src=yesok.gif/> 密码可以使用"; flag[3]=1; check_data(); } else{ $("span")[2].innerHTML="<img src=yesno.gif/> 两次密码不相同"; flag[3]=0; check_data(); } } } //---------用户名合法性检测 function check_id(id_name){//只能字母和数字,是否相同用AJAX判断 var reId=/^[\w\u0391-\uFFE5]+$/; var b_id=reId.test(id_name); if(!b_id){ $("span")[0].innerHTML="<img src=yesno.gif/> ID命名非法"; flag[4]=0; check_data(); } else{//合法用户名用ajax的checkid()检测是否被注册过 checkid(id_name); } } //---------检查数据,使提交按钮是否生效 function check_data(){ if(flag[0]==1 && flag[1]==1 && flag[2]==1 && flag[3]==1 && flag[4]==1 && flag[5]==1){ $("input")[8].disabled=false; } else{ $("input")[8].disabled=true; } } //-------------------------------------------------------------------- 3.关于ajax数据交互ajax.js 复制代码 代码如下: function checkcode(regcode){ var xmlhttp; try{ xmlhttp=new XMLHttpRequest(); } catch(e){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4){ if (xmlhttp.status==200){ var data=xmlhttp.responseText; code_result(data); } else{ $("span")[4].innerHTML="验证码校验失败,请联系管理员"; } } else{ $("span")[4].innerHTML="正在进行验证码校验..."; } } xmlhttp.open("post", "check_code.asp", true); xmlhttp.setRequestHeader(Content-type,application/x-www-form-urlencoded); xmlhttp.send("regcode="+escape(regcode)); } function code_result(data){ var resultbox=$("span")[4]; if(data==1){ resultbox.innerHTML=<img src="yesok.gif"/> 验证码正确; flag[5]=1; check_data(); } else{ resultbox.innerHTML=<img src="yesno.gif"/> 验证码错误; flag[5]=0; check_data(); } } //-------------------------------------------------------------------- function checkid(regid){ var xmlhttp; try{ xmlhttp=new XMLHttpRequest(); } catch(e){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4){ if (xmlhttp.status==200){ var data=xmlhttp.responseText; id_result(data); } else{ $("span")[0].innerHTML="用户名检测失败,请联系管理员"; } } else{ $("span")[0].innerHTML="正在进行用户名校验..."; } } xmlhttp.open("post", "check_id.asp", true); xmlhttp.setRequestHeader(Content-type,application/x-www-form-urlencoded); xmlhttp.send("regid="+escape(regid)); } function id_result(data){ var resultbox=$("span")[0]; if(data==1){ resultbox.innerHTML=<img src="yesok.gif"/> 用户名可用; flag[4]=1; check_data(); } else{ resultbox.innerHTML=<img src="yesno.gif"/> 该用户名已经被注册; flag[4]=0; check_data(); } } //-------------------------------------------------------------------- function sendinfo(regname,pwd,email){ var xmlhttp; try{ xmlhttp=new XMLHttpRequest(); } catch(e){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4){ if (xmlhttp.status==200){ var data=xmlhttp.responseText; reg_result(data); } else{ $("span")[5].innerHTML="注册失败,请联系管理员"; } } else{ $("span")[5].innerHTML="正在进行用户名注册..."; } } xmlhttp.open("post", "reg.asp", true); xmlhttp.setRequestHeader(Content-type,application/x-www-form-urlencoded); xmlhttp.send("regname="+escape(regname)+"&pwd="+escape(pwd)+"&email="+escape(email)); } function reg_result(data){ if(data==1){ $("span")[5].innerHTML=<a href="http://cceer.xmu.edu.cn/blog/" target="_blank">+$("input")[0].value+",您好.请点击这里登陆</a>"; } else{ $("span")[5].innerHTML="注册失败,请联系管理员"; } } |