当前位置:编程学习 > asp >>

[教程+分享]具有良好体验度的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=><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=></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;

上一个:飞云写的防CC攻击的ASP程序插件 打包下载
下一个:ASP对网页进行保护的简单代码 ip

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,