Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [Discuz! 4.1 Ajax计划第一弹]注册页面仿Hotmail无刷新验证!

[复制链接]
aligo 发表于 2006-7-14 11:01:31 | 显示全部楼层 |阅读模式
说明:此插件由aligo大人制作,耗时3天在大脑中构思,程序20分钟完成,后又经历2天时间调试浏览器平台兼容性,现在请向aligo大人的辛苦付出致敬!
安装必读:再安装此插件之前高呼99遍“aligo大人万岁!aligo大人是我们的神!”,并且充分阅读安装步骤,了解自己是否能够正确安装。
演示地址:http://msgene.cn/bbs/
安装后如出现一切问题,请找插件区版主进行技术支持,aligo大人事务繁忙,概不负责!


1、打开register.htm,找到
  1. {template header}
复制代码

下面插入
  1. <STYLE type=text/css>
  2. .pwd-strength {
  3. padding: 2px;
  4. padding-left: 5px;
  5. padding-right: 5px;
  6. width: 150px;
  7. border: solid 1px #CCCCCC;
  8. }
  9. .pwd-strength-box,
  10. .pwd-strength-box-low,
  11. .pwd-strength-box-med,
  12. .pwd-strength-box-hi
  13. {
  14. color: #464646;
  15. text-align: center;
  16. width: 33%;
  17. }
  18. .pwd-strength-box-low
  19. {
  20. color: #990000;
  21. background-color: #FFECEC;
  22. }
  23. .pwd-strength-box-med
  24. {
  25. color: #000066;
  26. background-color: #D2E9FF;
  27. }
  28. .pwd-strength-box-hi
  29. {
  30. color: #003300;
  31. background-color: #DDFFDD;
  32. }
  33. </STYLE>
复制代码

找到
  1. <form method="post" name="register" action="register.php?regsubmit=yes" $enctype onSubmit="this.regsubmit.disabled=true;">
复制代码

下面加入
  1. <SCRIPT language=javascript>
  2. function checkPassword(pwd){
  3. var objLow=document.getElementById("pwdLow");
  4. var objMed=document.getElementById("pwdMed");
  5. var objHi=document.getElementById("pwdHi");
  6. objLow.className="pwd-strength-box";
  7. objMed.className="pwd-strength-box";
  8. objHi.className="pwd-strength-box";
  9. if(pwd.length<6){
  10. objLow.className="pwd-strength-box-low";
  11. }else{
  12. var p1= (pwd.search(/[a-zA-Z]/)!=-1) ? 1 : 0;
  13. var p2= (pwd.search(/[0-9]/)!=-1) ? 1 : 0;
  14. var p3= (pwd.search(/[^A-Za-z0-9_]/)!=-1) ? 1 : 0;
  15. var pa=p1+p2+p3;
  16. if(pa==1){
  17. objLow.className="pwd-strength-box-low";
  18. }else if(pa==2){
  19. objMed.className="pwd-strength-box-med";
  20. }else if(pa==3){
  21. objHi.className="pwd-strength-box-hi";
  22. }
  23. }
  24. }

  25. function checkPassword2() {
  26. var objpwd2Ok=document.getElementById("pwdOk");
  27. var objpwd2Err=document.getElementById("pwdErr");
  28. if(document.register.password.value==document.register.password2.value){
  29. objpwd2Ok.className="pwd-strength-box-hi";
  30. objpwd2Err.className="pwd-strength-box";
  31. }else{
  32. objpwd2Ok.className="pwd-strength-box";
  33. objpwd2Err.className="pwd-strength-box-low";
  34. }
  35. }

  36. function checkMail(Txt) {
  37. var objmailOk=document.getElementById("mailOk");
  38. var objmailErr=document.getElementById("mailErr");
  39. var filter=/^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+\.)+(com|gov|net|com\.cn|edu\.cn)$/;
  40. if(filter.test(Txt)){
  41. objmailOk.className="pwd-strength-box-hi";
  42. objmailErr.className="pwd-strength-box";
  43. }else{
  44. objmailOk.className="pwd-strength-box";
  45. objmailErr.className="pwd-strength-box-low";
  46. }
  47. }
  48. function getXMLHttpRequest() {
  49.   var xmlhttp;
  50.   try {
  51.    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  52.   } catch (e) {
  53.    try {
  54.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  55.    } catch (e) {
  56.     xmlhttp = false;
  57.     }
  58.    }
  59.   if (!xmlhttp) {
  60.    xmlhttp = new XMLHttpRequest();
  61.   }
  62.   return xmlhttp;
  63. }

  64. function checkUsername(name) {
  65. var objnameOk=document.getElementById("nameOk");
  66. var objnameErr=document.getElementById("nameErr");
  67. var xmlHttp=getXMLHttpRequest();
  68.             xmlHttp.abort()  
  69.                 xmlHttp.open("GET","register.php?user=" + name,"true");
  70.                 xmlHttp.onreadystatechange=function() {
  71.         if (xmlHttp.readyState==4) {
  72.          if(xmlHttp.responseText=="1") {
  73.          objnameOk.className="pwd-strength-box-hi";
  74.          objnameErr.className="pwd-strength-box";
  75.          }else{
  76.          objnameOk.className="pwd-strength-box";
  77.          objnameErr.className="pwd-strength-box-low";
  78.          }
  79.         }
  80.         }      
  81.         xmlHttp.send(null);
  82. }
  83. </SCRIPT>
复制代码



找到
  1. <input type="text" name="username" size="25" maxlength="25">
  2.         <input type="button" value="{lang register_check_username}" onclick="window.open('member.php?action=check&username='+this.form.username.value);">
复制代码

替换成
  1. <input onkeyup="checkUsername(this.value);"type="text" name="username" size="25" maxlength="25">
  2. <TABLE class="pwd-strength" cellSpacing=0 cellPadding=0 width="100%" height="20">
  3. <TBODY>
  4. <TR>
  5. <TD class=pwd-strength-box id=nameOk>正确</TD>
  6. <TD class=pwd-strength-box id=nameErr>错误</TD></TR></TBODY></TABLE>
复制代码



找到
  1. <input type="password" name="password" size="25">
复制代码

替换成
  1. <input onkeyup="checkPassword(this.value);" type="password" name="password" size="25"><TABLE class="pwd-strength" cellSpacing=0 cellPadding=0 width="100%">
  2. <TBODY>
  3. <TR>
  4. <TD class=pwd-strength-box id=pwdLow>低</TD>
  5. <TD class=pwd-strength-box id=pwdMed>中</TD>
  6. <TD class=pwd-strength-box id=pwdHi>高</TD></TR></TBODY></TABLE>
复制代码


找到
  1. <input type="password" name="password2" size="25">
复制代码

替换成
  1. <input onkeyup="checkPassword2();" type="password" name="password2" size="25">
  2.         <TABLE class="pwd-strength" cellSpacing=0 cellPadding=0 width="100%" height="20">
  3. <TBODY>
  4. <TR>
  5. <TD class=pwd-strength-box id=pwdOk>正确</TD>
  6. <TD class=pwd-strength-box id=pwdErr>错误</TD></TR></TBODY></TABLE>
复制代码


找到
  1. <input type="text" name="email" size="25">
  2.         <!--{if $regverify == 1}-->  <span class="smalltxt">{lang register_email_comment}</span><!--{/if}-->
  3.         <!--{if $censoremail}-->  <span class="smalltxt">{lang register_email_censor}</span><!--{/if}-->
复制代码

替换成
  1. <input onkeyup="checkMail(this.value);" type="text" name="email" size="25">
  2.         <TABLE class="pwd-strength" cellSpacing=0 cellPadding=0 width="100%" height="20">
  3. <TBODY>
  4. <TR>
  5. <TD class=pwd-strength-box id=mailOk>正确</TD>
  6. <TD class=pwd-strength-box id=mailErr>错误</TD></TR></TBODY></TABLE>
  7.         <!--{if $regverify == 1}-->  <span class="smalltxt">{lang register_email_comment}</span><!--{/if}-->
  8.         <!--{if $censoremail}-->  <span class="smalltxt">{lang register_email_censor}</span><!--{/if}-->
复制代码


2、打开register.php

找到
  1. include template('register');
复制代码


替换成

  1. if (isset($_GET["user"])) {
  2.                 $username = trim($_GET["user"]);
  3.                 $query = $db->query("SELECT * FROM {$tablepre}members WHERE username='$username'");
  4.                 if($db->fetch_array($query)) {
  5.                         echo "0";
  6.                 }

  7. elseif(strlen($username) > 15) {
  8.                         echo "0";
  9.                 } elseif(preg_match("/^\s*$|^c:\\con\\con$| |[%,\*"\s\t\<\>\&] |^游客|^Guest/is", $username) || @preg_match('/^'.str_replace(array('\\*', ',', ' '), array('.*', '|', ''), preg_quote($censoruser, '/')).'$/i', $username)) {
  10.                         echo "0";
  11.                 } else {
  12.                         echo "1";
  13.                 }
  14.         }else{
  15.         include template('register');
  16.                 }
复制代码

评分

1

查看全部评分

魔焰男孩 发表于 2006-7-14 11:02:42 | 显示全部楼层
sofa!
回复

使用道具 举报

魔焰男孩 发表于 2006-7-14 11:03:49 | 显示全部楼层
安装后如出现一切问题,请找插件区版主进行技术支持,aligo大人事务繁忙,概不负责!
楼主MJJ
回复

使用道具 举报

zhouc 发表于 2006-7-14 11:06:17 | 显示全部楼层
好样的
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
v
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
回复

使用道具 举报

 楼主| aligo 发表于 2006-7-14 11:08:27 | 显示全部楼层
原帖由 zhouc 于 2006-7-14 11:06 发表
好样的
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
...

感动————
回复

使用道具 举报

zhouc 发表于 2006-7-14 11:17:08 | 显示全部楼层
回复

使用道具 举报

xuesharp 发表于 2006-7-14 11:17:52 | 显示全部楼层
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!

弱弱的提几个问题
1.那个验证码那个,能弄上么?
2.那个位置,在下面,有点不太好看
3.那个错误的红色,太粉了,不刺眼啊~!
4.那个,能不能当上面出现所有的正确全部是绿色的时候,提交按钮才能点击~~~!

我测试时候还出现过这个错误
用户名包含敏感字符或被系统屏蔽,请返回重新填写。

[ 点击这里返回上一页 ]
是不是哪里验证不完全泥????


aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!
aligo大人万岁!aligo大人是我们的神!

[ 本帖最后由 xuesharp 于 2006-7-14 11:40 编辑 ]
回复

使用道具 举报

zhouc 发表于 2006-7-14 11:18:30 | 显示全部楼层
既然喊了你神,那就把QQ宠物也做完吧
回复

使用道具 举报

 楼主| aligo 发表于 2006-7-14 11:19:16 | 显示全部楼层
原帖由 zhouc 于 2006-7-14 11:18 发表
既然喊了你神,那就把QQ宠物也做完吧

那是什么东西?

不是腾讯做的么?
回复

使用道具 举报

咕咕 发表于 2006-7-14 11:26:05 | 显示全部楼层
原帖由 aligo 于 2006-7-14 11:19 发表 那是什么东西? 不是腾讯做的么?

是童虎没有完成的宠物插件:)支持你一个先
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-22 09:04 , Processed in 0.037187 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表