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

源码网商城

建立良好体验度的Web注册系统ajax

  • 时间:2020-06-29 04:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:建立良好体验度的Web注册系统ajax
*项目名称:具有良好体验度的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防注入   限于本人水平上的限制,错误和不足在所难免,如果你有问题或者建议,请联系我,感谢! *这里是效果图 限于文章长度的限制,只帖出两个js文件和一个显示注册页面,至于后台处理页面以及css文件等,请在压缩包中查看 1.reg.htm(由于BLOG会过滤,分开三个部分写)  <!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" content="text/html; charset=GB2312" /> <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 onload="check_data();"> view plaincopy to clipboardprint? <UL>   <LI id=title>草履虫---Web注册系统    <LI class=underline>       <LABEL>注册用户名:            <INPUT onblur=check_id(this.value); maxLength=16>       </LABEL>       <SPAN>支持汉字,单词,数字,敏感字符屏蔽</SPAN>   <LI>       <LABEL>注册密码:            <INPUT onblur=check_password(); type=password value="">       </LABEL>       <SPAN>密码在6-16位之间,敏感字符屏蔽</SPAN>   <LI class=underline>       <LABEL>重复密码:            <INPUT onblur=check_pw(); type=password maxLength=16 value="">       </LABEL>       <SPAN></SPAN>   <LI class=underline>       <LABEL>邮箱:            <INPUT onblur=check_email(this.value)>       </LABEL>       <SPAN>email是联系重要手段</SPAN>   <LI class=underline>验证码:        <INPUT onblur=checkcode(this.value); maxLength=5>       <LABEL>           <IMG id=src onclick="this.src=this.src+'?'+Math.random();" height=18 alt=看不清楚?请点击刷新 src="getcode.asp">           <SPAN>看不清楚?请点击验证码刷新</SPAN>       </LABEL>   <LI class=underline>       相关协议:            <LABEL onclick=accept_info();><INPUT type=radio name=info>接受</LABEL>           <LABEL onclick=refuse_info();><INPUT type=radio name=info>不接受</LABEL>             <INPUT class=button type=button value=阅读协议>   <LI class=underline>       <INPUT class="button setleft" onclick="sendinfo($('input')[0].value,$('input')[1].value,$('input')[3].value)" type=submit value=注册>       <INPUT class=button onclick=reset_info() type=reset value=重置>       <SPAN></SPAN>   <LI class=copyright>作者:草履虫    <LI class=copyright>时间:2007-6-28    <LI class=copyright>联系:caolvchong@gmail.com    <LI class=copyright>Blog---Web2.0之路:<A href="http://cceer.xmu.edu.cn/blog/">http://cceer.xmu.edu.cn/blog/</A>   /LI></UL>                 草履虫---Web注册系统             注册用户名:                          支持汉字,单词,数字,敏感字符屏蔽                      注册密码:                          密码在6-16位之间,敏感字符屏蔽                      重复密码:                                   邮箱:                          email是联系重要手段         验证码:                              看不清楚?请点击验证码刷新                      相关协议:                 接受                 不接受                                             作者:草履虫         时间:2007-6-28         联系:caolvchong@gmail.com         Blog---Web2.0之路:http://cceer.xmu.edu.cn/blog/ </body> </html> 2.detect.js view plaincopy to clipboardprint?     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")[i].innerHTML=info[i];                flag[i]=0;            }            for(var i=0;i<$("input").length-3;i++){                $("input")[i].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;                }            }    //--------------------------------------------------------------------           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")[i].innerHTML=info[i];                 flag[i]=0;             }             for(var i=0;i<$("input").length-3;i++){                 $("input")[i].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=" 邮箱可用";                 flag[1]=1;                 check_data();             }             else{                 $("span")[3].innerHTML=" 邮箱错误";                 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=" 密码长度不能小于6";                 flag[2]=0;                 check_data();             }             //-------合法性检测:不能包含汉字             else if(b_chinese){                 $("span")[1].innerHTML=" 密码不能包含中文";                 flag[2]=0;                 check_data();             }             //-------合法性检测:不能包含空格             else if(b_space){                 $("span")[1].innerHTML=" 密码不能包含空格";                 flag[2]=0;                 check_data();             }             //-------合法时显示密码强度             else{                 //定义对应的消息提示                 var num=getResult(pwd);                 var msg=new Array(" 密码强度差"," 密码强度一般"," 密码强度强壮");                 $("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=" 密码可以使用";                         flag[3]=1;                         check_data();                     }                     else{                         $("span")[2].innerHTML=" 两次密码不相同";                         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=" 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.js view plaincopy to clipboardprint? 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="注册失败,请联系管理员";        }        }   *这里是所有文件的打包下载(包括所有文件,图片,数据库等,解压后请在IIS下测试) [url=http://cceer.xmu.edu.cn/blog/upload/%E8%89%AF%E5%A5%BD%E4%BD%93%E9%AA%8C%E5%BA%A6%E7%9A%84%E6%B3%A8%E5%86%8C%E7%B3%BB%E7%BB%9F.rar]良好体验度的注册系统.rar[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部