主頁 > 知識庫 > [教程+分享]具有良好體驗(yàn)度的Web注冊系統(tǒng)

[教程+分享]具有良好體驗(yàn)度的Web注冊系統(tǒng)

熱門標(biāo)簽:常用地圖標(biāo)注范圍點(diǎn) 咸陽銷售外呼系統(tǒng) 蘭州智能語音電銷機(jī)器人功能 寧夏怎么申請400電話 外呼回?fù)芟到y(tǒng)圖片 為什么外呼系統(tǒng)需要預(yù)存話費(fèi)呢 辦理400電話一年多少錢 離線電子地圖標(biāo)注軟件注冊 企數(shù)外呼系統(tǒng)能用多久

*項(xiàng)目名稱:具有良好體驗(yàn)度的Web注冊系統(tǒng)
*作者:草履蟲
*聯(lián)系:caolvchong@gmail.com
*時間:2007-6-29
*起因和版權(quán)說明:
1.藍(lán)色理想上有位會員發(fā)布了個類似的系統(tǒng),提問說驗(yàn)證碼不支持firefox的刷新,于是萌生念頭做一個.本系統(tǒng)外觀(按鈕取色等)借鑒了該系統(tǒng),但細(xì)節(jié)實(shí)現(xiàn)原理并不相同(該文地址:http://bbs.blueidea.com/thread-2761325-1-4.html).
2.另外,自己做的這個注冊系統(tǒng)中利用了網(wǎng)絡(luò)上的無組件驗(yàn)證碼(作者sipo)
3.至于密碼強(qiáng)度的算法借鑒了藍(lán)色理想的一篇文章(http://www.blueidea.com/tech/web/2006/4324.asp),但該算法并不十分理想,如果有更好算法的朋友不凡交流一下
*特點(diǎn)和知識點(diǎn):
1.AJAX驗(yàn)證用戶名和驗(yàn)證碼,同時異步進(jìn)行用戶名注冊(都屬于AJAX的很基礎(chǔ)部分)
2.支持驗(yàn)證碼刷新(包括firefox平臺下)
3.密碼,郵箱,用戶名等即時檢測(利用javascript DOM)
4.HTML通過W3C Strict驗(yàn)證,CSS也通過W3C CSS驗(yàn)證(其實(shí)這個有點(diǎn)多余,并不完全必要)
*開發(fā)平臺:Windows2003 IIS6.0 Access數(shù)據(jù)庫
*工具: DreamWeaver(寫ASP),Aptana(寫Javascript,HTML和CSS),Emeditor(寫這篇文章),Access2003(數(shù)據(jù)庫)
*測試平臺:Firefox2.0,Opera9.21,IE6.0,IE7.0
*演示地址:http://finish.3322.org/reg/reg.htm(短期有效,在本機(jī)上,可能訪問不順暢)
*原文地址:http://cceer.xmu.edu.cn/blog/view.asp?id=52
*補(bǔ)充:
如果你使用這個注冊系統(tǒng),請務(wù)必注意下列問題:
本系統(tǒng)沒有對密碼進(jìn)行加密,如果需要,可以搜索MD5加密
本系統(tǒng)沒有進(jìn)行防注入設(shè)置,如果需要,可以搜索SQL防注入
限于本人水平上的限制,錯誤和不足在所難免,如果你有問題或者建議,請聯(lián)系我,感謝!
*這里是效果圖

這里是所有文件的打包下載(包括所有文件,圖片,數(shù)據(jù)庫等,解壓后請?jiān)贗IS下測試)
本地下載
限于文章長度的限制,只帖出兩個js文件和一個顯示注冊頁面,至于后臺處理頁面以及css文件等,請?jiān)趬嚎s包中查看 
注冊頁面reg.htm 

復(fù)制代碼 代碼如下:

!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注冊系統(tǒng)/li>
  li class="underline">
   label>注冊用戶名:
    input type="text" maxlength="16" />
   /label>
   span>支持漢字,單詞,數(shù)字,敏感字符屏蔽/span>
  /li>
  li>
   label>注冊密碼:
    input type="password"  />
   /label>
   span>密碼在6-16位之間,敏感字符屏蔽/span>
  /li>
  li class="underline">
   label>重復(fù)密碼:
    input type="password" maxlength="16" />
   /label>
   span>/span>
  /li>
  li class="underline">
   label>郵箱:
    input type="text" />
   /label>
   span>email是聯(lián)系重要手段/span>
  /li>
  li class="underline">驗(yàn)證碼:
   input type="text" maxlength="5" />
   label>
    img src="getcode.asp" id="src" height="18" alt="看不清楚?請點(diǎn)擊刷新" />
    span>看不清楚?請點(diǎn)擊驗(yàn)證碼刷新/span>
   /label>
  /li>
  li class="underline">
   相關(guān)協(xié)議:
    label >input type="radio" name="info"/>接受/label>
    label >input type="radio" name="info"/>不接受/label> 
    input type="button" value="閱讀協(xié)議" 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">聯(lián)系: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.數(shù)據(jù)合法性檢測detect.js 
復(fù)制代碼 代碼如下:

var flag=[0,0,0,0,0,0];
  var $=function(tagName){
   return document.getElementsByTagName(tagName);
  }
//----------接受協(xié)議
  function accept_info(){
   flag[0]=1;
   check_data();
  }
//----------拒絕協(xié)議
  function refuse_info(){
   flag[0]=0;
   check_data();
  }
//----------重置
  function reset_info(){
   var info=["支持漢字,單詞,數(shù)字,敏感字符屏蔽","密碼在6-16位之間,敏感字符屏蔽","","email是聯(lián)系重要手段","看不清楚?請點(diǎn)擊驗(yàn)證碼刷新"]
   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();
   }
   //-------合法時顯示密碼強(qiáng)度
   else{
    //定義對應(yīng)的消息提示
    var num=getResult(pwd);
    var msg=new Array("img src='bad.gif'/> 密碼強(qiáng)度差","img src='comm.gif'/> 密碼強(qiáng)度一般","img src='good.gif'/> 密碼強(qiáng)度強(qiáng)壯");
    $("span")[1].innerHTML=msg[num];
    if($("input")[2].value!=""){
     check_pw();
     }
    return flag[2]=1;
    check_data();
    }
   }
   //定義檢測函數(shù),返回0/1/2分別代表差/一般/強(qiáng)
   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){//只能字母和數(shù)字,是否相同用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);
    }
   }
  //---------檢查數(shù)據(jù),使提交按鈕是否生效
   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.關(guān)于ajax數(shù)據(jù)交互ajax.js 
復(fù)制代碼 代碼如下:

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="驗(yàn)證碼校驗(yàn)失敗,請聯(lián)系管理員";
   }
  }
else{
  $("span")[4].innerHTML="正在進(jìn)行驗(yàn)證碼校驗(yàn)...";
  }
}
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"/> 驗(yàn)證碼正確';
  flag[5]=1;
  check_data();
  }
else{
  resultbox.innerHTML='img src="yesno.gif"/> 驗(yàn)證碼錯誤';
  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="用戶名檢測失敗,請聯(lián)系管理員";
   }
  }
else{
  $("span")[0].innerHTML="正在進(jìn)行用戶名校驗(yàn)...";
  }
}
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"/> 該用戶名已經(jīng)被注冊';
  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="注冊失敗,請聯(lián)系管理員";
   }
  }
else{
  $("span")[5].innerHTML="正在進(jìn)行用戶名注冊...";
  }
}
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 ;
  }
else{
  $("span")[5].innerHTML="注冊失敗,請聯(lián)系管理員";
}
}

標(biāo)簽:咸陽 溫州 昆明 鐵嶺 昌都 泰州 麗江 家電維修

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《[教程+分享]具有良好體驗(yàn)度的Web注冊系統(tǒng)》,本文關(guān)鍵詞  教程,分享,具有,良好,體驗(yàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《[教程+分享]具有良好體驗(yàn)度的Web注冊系統(tǒng)》相關(guān)的同類信息!
  • 本頁收集關(guān)于[教程+分享]具有良好體驗(yàn)度的Web注冊系統(tǒng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章