源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

[教程+分享]具有良好体验度的Web注册系统

  • 时间:2021-02-07 08:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:[教程+分享]具有良好体验度的Web注册系统
*项目名称:具有良好体验度的Web注册系统 *作者:草履虫 *联系:caolvchong@gmail.com *时间:2007-6-29 *起因和版权说明: 1.蓝色理想上有位会员发布了个类似的系统,提问说验证码不支持firefox的刷新,于是萌生念头做一个.本系统外观(按钮取色等)借鉴了该系统,但细节实现原理并不相同(该文地址:http://bbs.blueidea.com/thread-2761325-1-4.html). 2.另外,自己做的这个注册系统中利用了网络上的无组件验证码(作者sipo) 3.至于密码强度的算法借鉴了蓝色理想的一篇文章(http://www.blueidea.com/tech/web/2006/4324.asp),但该算法并不十分理想,如果有更好算法的朋友不凡交流一下 *特点和知识点: 1.AJAX验证用户名和验证码,同时异步进行用户名注册(都属于AJAX的很基础部分) 2.支持验证码刷新(包括firefox平台下) 3.密码,邮箱,用户名等即时检测(利用javascript DOM) 4.HTML通过W3C Strict验证,CSS也通过W3C CSS验证(其实这个有点多余,并不完全必要) *开发平台:Windows2003 IIS6.0 Access数据库 *工具: DreamWeaver(写ASP),Aptana(写Javascript,HTML和CSS),Emeditor(写这篇文章),Access2003(数据库) *测试平台:Firefox2.0,Opera9.21,IE6.0,IE7.0 *演示地址:http://finish.3322.org/reg/reg.htm(短期有效,在本机上,可能访问不顺畅) *原文地址:http://cceer.xmu.edu.cn/blog/view.asp?id=52 *补充: 如果你使用这个注册系统,请务必注意下列问题: 本系统没有对密码进行加密,如果需要,可以搜索MD5加密 本系统没有进行防注入设置,如果需要,可以搜索SQL防注入 限于本人水平上的限制,错误和不足在所难免,如果你有问题或者建议,请联系我,感谢! *这里是效果图 [img]http://www.sosuo8.com/article/upimages3/20070629_72f95b470794096512cfxWNIK9DqxE7U.jpg[/img] 这里是所有文件的打包下载(包括所有文件,图片,数据库等,解压后请在IIS下测试) [url=http://files.jb51.net/upload/tiyan.rar]本地下载[/url] 限于文章长度的限制,只帖出两个js文件和一个显示注册页面,至于后台处理页面以及css文件等,请在压缩包中查看  注册页面reg.htm 
[url=reg.css]<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 
[u]复制代码[/u] 代码如下:
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="注册失败,请联系管理员"; } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部