答案:*项目名称:具有良好体验度的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[复制此代码]CODE:
<!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[复制此代码]CODE:
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='/upload/2008/11/30/2008113025949170.gif'/> 邮箱可用";
flag[1]=1;
check_data();
}
else{
$("span")[3].innerHTML="<img src='/upload/2008/11/30/2008113025949423.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='/upload/2008/11/30/2008113025949423.gif'/> 密码长度不能小于6";
flag[2]=0;
check_data();
}
//-------合法性检测:不能包含汉字
else if(b_chinese){
$("span")[1].innerHTML="<img src='/upload/2008/11/30/2008113025949423.gif'/> 密码不能包含中文";
flag[2]=0;
check_data();
}
//-------合法性检测:不能包含空格
else if(b_space){
$("span")[1].innerHTML="<img src='/upload/2008/11/30/2008113025949423.gif'/> 密码不能包含空格";
flag[2]=0;
check_data();
}
//-------合法时显示密码强度
else{
//定义对应的消息提示
var num=getResult(pwd);
var msg=new Array("<img src='/upload/2008/11/30/2008113025949761.gif'/> 密码强度差","<img src='/upload/2008/11/30/2008113025949155.gif'/> 密码强度一般","<img src='/upload/2008/11/30/2008113025949446.gif'/> 密码强度强壮");
$("span")[1].innerHTML=msg[num];
if($("input")[2].value!=""){
check_pw();
}
- 更多asp疑问解答:
- asp正则过滤重复字符串的代码
- 用asp过滤全部html但保留br类似的符号
- 会asp,但感觉asp要过点,想学php。但我一般做的都是小公司的站,用access数
- PHP的空间可以用ASP的源代码吗?
- 以前做asp程序,现在应该怎样发展?是学.net还是php
- 以前做asp程序,现在应该怎样发展?是学.net还是php
- 想做一个市级的人才网acess,sql数据库,语言asp,jsp,php分别用哪种好
- jsp,asp,php 区别
- 我想找一个有比较多漏洞的网站的源码,比如可以asp,php注入等都可以。供学习研究用。请提供下载地址。。
- 现在候找人做个网站,用ASP,还是PHP语言去做好
- asp,php ,jsp,.net 对于做网站前台的重要吗?
- asp和php的区别是什么?
- 我是新手SEO菜鸟 请问wp dw php asp cms myspl dede 这些软件应该如何区分呀?
- 网页制作相关的三种语言:ASP JSP PHP那个好点,简单点?
- 网页制作相关的三种语言:ASP JSP PHP那个好点,简单点?