• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    [教程+分享]具有良好体验度的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防注入
    限于本人水平上的限制,错误和不足在所难免,如果你有问题或者建议,请联系我,感谢!
    *这里是效果图

    这里是所有文件的打包下载(包括所有文件,图片,数据库等,解压后请在IIS下测试)
    本地下载
    限于文章长度的限制,只帖出两个js文件和一个显示注册页面,至于后台处理页面以及css文件等,请在压缩包中查看 
    注册页面reg.htm 

    复制代码 代码如下:

    !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.length6){
        $("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="注册失败,请联系管理员";
    }
    }

    上一篇:aspupload 3.0 下载与使用集锦
    下一篇:asp adodb.stream对象的方法/属性
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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