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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] 换了模板注册页面老提示密码空或包含非法字符,但可以注册,各位大大请帮忙

[复制链接]
aiakos 发表于 2010-3-6 10:08:47 | 显示全部楼层 |阅读模式
本帖最后由 aiakos 于 2010-3-6 10:19 编辑

注册页面源码:
  1. <?exit?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=$_SC[charset]" />
  6. <title>$title - $_SCONFIG[sitename]</title>
  7. <meta name="keywords" content="$keywords $_SCONFIG[seokeywords]" />
  8. <meta name="description" content="$description $_SCONFIG[seodescription]" />
  9. <link rel="stylesheet" type="text/css" href="{S_URL}/templates/$_SCONFIG[template]/css/common.css" />
  10. <link rel="stylesheet" type="text/css" href="{S_URL}/templates/$_SCONFIG[template]/css/ver2.0.css" />
  11. $_SCONFIG[seohead]
  12. <script type="text/javascript">var siteUrl = "{S_URL}";</script>
  13. <script src="{S_URL}/include/js/ajax.js" type="text/javascript" language="javascript"></script>
  14. <script src="{S_URL}/include/js/common.js" type="text/javascript" language="javascript"></script>
  15. <script type="text/javascript" src="{S_URL}/templates/$_SCONFIG[template]/js/common.js"></script>
  16. </head>
  17. <body>
  18. <div id="ajaxwaitid"></div>
  19. <div id="append_parent"></div>
  20. <!--{template header_nav}-->
  21. <div class="clear"></div>
  22. <div class="column global_module bg_fff">
  23.         <div class="regi_caption">
  24.                 <h1>注册本站帐号</h1>
  25.                 <p><span style="color:#F00; vertical-align:middle;">*</span> 请完整填写以下信息进行注册。注册完成后,该帐号将作为您在本站的通行帐号,您可以享受本站提供的各种服务。</p>
  26.         </div>
  27.         <div class="regi_content">
  28.                 <form id="registerform" name="registerform" action="{S_URL}/do.php?action=register" method="post">
  29.                 <table>
  30.                         <tbody>
  31.                                 <!--{if empty($_SCONFIG['noseccode'])}-->
  32.                                 <tr>
  33.                                         <th width="100">验证码</th>
  34.                                         <td>
  35.                                                 <script>seccode();</script>
  36.                                                 <p style="padding-bottom:6px;">请输入上面的4位字母或数字,看不清可<a href="javascript:updateseccode();">更换一张</a></p>
  37.                                                 <input id="seccode" class="input_tx" type="text" autocomplete="off" tabindex="1" onblur="checkSeccode()" size="12" value="" name="seccode"/>
  38.                                                 <span id="checkseccode" class="warning">&nbsp;</span>
  39.                                         </td>
  40.                                 </tr>
  41.                                 <!--{/if}-->
  42.                                 <tr>
  43.                                         <th width="100">用户名</th>
  44.                                         <td><input size="30" type="text" onblur="checkUserName()" class="input_tx" value="" id="username" name="username" tabindex="2" /> <span id="checkusername" class="warning">&nbsp;</span></td>
  45.                                 </tr>
  46.                                 <tr>
  47.                                         <th>密码</th>
  48.                                         <td>
  49.                                         <p><input size="30" type="password" onblur="checkPassword()" onkeyup="checkPwd(this.value);"class="input_tx" value=""  name="password" id="password" tabindex="3" /> <span id="checkpassword">&nbsp;</span></p>
  50.                                         <style>
  51.                                                 .psdiv0,.psdiv1,.psdiv2,.psdiv3,.psdiv4{position:relative;height:30px;color:#666}/*密码强度容器*/
  52.                                                 .strongdepict{position:absolute; width:300px;left:0px;top:3px}/*密码强度固定文字*/
  53.                                                 .strongbg{position:absolute;left:0px;top:22px;width:235px!important;width:234px;height:10px;background-color:#E0E0E0; font-size:0px;line-height:0px}/*灰色强度背景*/
  54.                                                 .strong{float:left;font-size:0px;line-height:0px;height:10px}/*色块背景*/
  55.                                                
  56.                                                 .psdiv0 span{display:none}
  57.                                                 .psdiv1 span{display:inline;color:#F00}
  58.                                                 .psdiv2 span{display:inline;color:#C48002}
  59.                                                 .psdiv3 span{display:inline;color:#2CA4DE}
  60.                                                 .psdiv4 span{display:inline;color:#063}
  61.                                                
  62.                                                 .psdiv0 .strong{ width:0px}
  63.                                                 .psdiv1 .strong{ width:25%;background-color:#F00}
  64.                                                 .psdiv2 .strong{ width:50%;background-color:#F90}
  65.                                                 .psdiv3 .strong{ width:75%;background-color:#2CA4DE}
  66.                                                 .psdiv4 .strong{ width:100%;background-color:#063}
  67.                                         </style>
  68.                                         <div class="psdiv0" id="chkpswd">
  69.                                                 <div class="strongdepict">密码安全程度:<span id="chkpswdcnt">太短</span></div>
  70.                                                 <div class="strongbg">
  71.                                                         <div class="strong"></div>                       
  72.                                                 </div>
  73.                                         </div>
  74.                                         </td>
  75.                                 </tr>
  76.                                 <tr>
  77.                                         <th>确认密码</th>
  78.                                         <td><input size="30" type="password" onblur="checkPassword2()" class="input_tx" value="" id="password2" name="password2" tabindex="4" /> <span class="warning" id="checkpassword2">&nbsp;</span></td>
  79.                                 </tr>
  80.                                 <tr>
  81.                                         <th>邮箱</th>
  82.                                         <td><input size="30" type="text" class="input_tx" id="email" name="email" value="@" tabindex="5" /><br />请准确填入您的邮箱,在忘记密码,或者您使用邮件通知功能时,会发送邮件到该邮箱。</td>
  83.                                 </tr>
  84.                                 <!--{if $register_rule}-->
  85.                                 <tr><th>服务条款</th>
  86.                                         <td><div name="rule" style="border:1px solid #C3C3C3;width:500px;height:100px; margin-bottom:5px;overflow:auto;padding:5px;">$register_rule</div>
  87.                                         <input type="checkbox" name="accede" id="accede" value="1"><label for="accede">我已阅读,并同意以上服务条款</label>
  88.                                         <script type="text/javascript">
  89.                                                 function checkClause() {
  90.                                                         if($('accede').checked) {
  91.                                                                 return true;
  92.                                                         } else {
  93.                                                                 alert("您必须同意服务条款后才能注册");
  94.                                                                 return false;
  95.                                                         }
  96.                                                 }
  97.                                         </script>
  98.                                         </td>
  99.                                 </tr>
  100.                                 <!--{/if}-->
  101.                                 <tr>
  102.                                         <th></th>
  103.                                         <td>
  104.                                         <input type="hidden" name="formhash" value="<!--{eval echo formhash();}-->" />
  105.                                         <input type="hidden" name="refer" value="$refer" />
  106.                                         <input type="hidden" id="registersubmit" name="registersubmit" value="注册" />
  107.                                         <input type="submit" value="注册" class="input_search" onclick="ajaxpost('registerform', 'register');return false;" tabindex="6" /></td>
  108.                                 </tr>
  109.                                 <tr><th>&nbsp;</th><td id="__registerform" style="color:red; font-weight:bold;"></td></tr>
  110.                         </tbody>
  111.                 </table>
  112.                 </form>
  113.                 </div>
  114.         </div><!--register end-->
  115.         </div><!--column end-->
  116. </div>

  117. </div><!--pagebody end-->
  118. <script type="text/javascript">
  119. <!--

  120.         $('username').focus();
  121.         function register(show_id, result) {
  122.                 if(result) {
  123.                         $('registersubmit').disabled = true;
  124.                         window.location.href = "$refer";
  125.                 } else {
  126.                         updateseccode();
  127.                 }
  128.         }
  129.         var lastUserName = lastPassword = lastEmail = lastSecCode = '';
  130.         function checkUserName() {
  131.                 if($('username').value.length == 0) return;
  132.                 var userName = trim($('username').value);
  133.                 if(userName == lastUserName) {
  134.                         return;
  135.                 } else {
  136.                         lastUserName = userName;
  137.                 }
  138.                 var cu = $('checkusername');
  139.                 var unLen = userName.replace(/[^\x00-\xff]/g, "**").length;

  140.                 if(unLen < 3 || unLen > 15) {
  141.                         warning(cu, unLen < 3 ? '用户名小于3个字符' : '用户名超过 15 个字符');
  142.                         return;
  143.                 }
  144.                 ajaxresponse('checkusername', 'op=checkusername&username=' + (is_ie && document.charset == 'utf-8' ? encodeURIComponent(userName) : userName));
  145.         }
  146.         function checkPassword(confirm) {
  147.                 var password = $('password').value;
  148.                 if(!confirm && password == lastPassword) {
  149.                         return;
  150.                 } else {
  151.                         lastPassword = password;
  152.                 }
  153.                 var cp = $('checkpassword');
  154.                 if(password == '' || /[\'"\\]/.test(password)) {
  155.                         warning(cp, '密码空或包含非法字符');
  156.                         return false;
  157.                 } else {
  158.                         cp.style.display = '';
  159.                         cp.innerHTML = '<img src="images/base/check_right.gif" width="13" height="13">';
  160.                         if(!confirm) {
  161.                                 checkPassword2(true);
  162.                         }
  163.                         return true;
  164.                 }
  165.         }
  166.         function checkPassword2(confirm) {
  167.                 var password = $('password').value;
  168.                 var password2 = $('password2').value;
  169.                 var cp2 = $('checkpassword2');
  170.                 if(password2 != '') {
  171.                         checkPassword(true);
  172.                 }
  173.                 if(password == '' || (confirm && password2 == '')) {
  174.                         cp2.style.display = 'none';
  175.                         return;
  176.                 }
  177.                 if(password != password2) {
  178.                         warning(cp2, '两次输入的密码不一致');
  179.                 } else {
  180.                         cp2.style.display = '';
  181.                         cp2.innerHTML = '<img src="images/base/check_right.gif" width="13" height="13">';
  182.                 }
  183.         }
  184.         function checkSeccode() {
  185.                 var seccodeVerify = $('seccode').value;
  186.                 if(seccodeVerify == lastSecCode) {
  187.                         return;
  188.                 } else {
  189.                         lastSecCode = seccodeVerify;
  190.                 }
  191.                 ajaxresponse('checkseccode', 'op=checkseccode&seccode=' + (is_ie && document.charset == 'utf-8' ? encodeURIComponent(seccodeVerify) : seccodeVerify));
  192.         }
  193.         function ajaxresponse(objname, data) {
  194.                 var x = new Ajax('XML', objname);
  195.                 x.get('{S_URL_ALL}/do.php?action=register&' + data, function(s){
  196.                         var obj = $(objname);
  197.                         if(trim(s) == 'succeed') {
  198.                                 obj.style.display = '';
  199.                                 obj.innerHTML = '<img src="images/base/check_right.gif" width="13" height="13">';
  200.                                 obj.className = "warning";
  201.                         } else {
  202.                                 warning(obj, s);
  203.                         }
  204.                 });
  205.         }
  206.         function warning(obj, msg) {
  207.                 if((ton = obj.id.substr(5, obj.id.length)) != 'password2') {
  208.                         $(ton).select();
  209.                 }
  210.                 obj.style.display = '';
  211.                 obj.innerHTML = '<img src="images/base/check_error.gif" width="13" height="13"> &nbsp; ' + msg;
  212.                 obj.className = "warning";
  213.         }

  214.         function checkPwd(pwd){

  215.                 if (pwd == "") {
  216.                         $("chkpswd").className = "psdiv0";
  217.                         $("chkpswdcnt").innerHTML = "";
  218.                 } else if (pwd.length < 3) {
  219.                         $("chkpswd").className = "psdiv1";
  220.                         $("chkpswdcnt").innerHTML = "太短";
  221.                 } else if(!isPassword(pwd) || !/^[^%&]*$/.test(pwd)) {
  222.                         $("chkpswd").className = "psdiv0";
  223.                         $("chkpswdcnt").innerHTML = "";
  224.                 } else {
  225.                         var csint = checkStrong(pwd);
  226.                         switch(csint) {
  227.                                 case 1:
  228.                                         $("chkpswdcnt").innerHTML = "很弱";
  229.                                         $( "chkpswd" ).className = "psdiv"+(csint + 1);
  230.                                         break;
  231.                                 case 2:
  232.                                         $("chkpswdcnt").innerHTML = "一般";
  233.                                         $( "chkpswd" ).className = "psdiv"+(csint + 1);
  234.                                         break;
  235.                                 case 3:               
  236.                                         $("chkpswdcnt").innerHTML = "很强";
  237.                                         $("chkpswd").className = "psdiv"+(csint + 1);
  238.                                         break;
  239.                         }
  240.                 }
  241.         }
  242.         function isPassword(str){
  243.                 if (str.length < 3) return false;
  244.                 var len;
  245.                 var i;
  246.                 len = 0;
  247.                 for (i=0;i<str.length;i++){
  248.                         if (str.charCodeAt(i)>255) return false;
  249.                 }
  250.                 return true;
  251.         }
  252.         function charMode(iN){
  253.                 if (iN>=48 && iN <=57) //数字
  254.                 return 1;
  255.                 if (iN>=65 && iN <=90) //大写字母
  256.                 return 2;
  257.                 if (iN>=97 && iN <=122) //小写
  258.                 return 4;
  259.                 else
  260.                 return 8; //特殊字符
  261.         }
  262.         //计算出当前密码当中一共有多少种模式
  263.         function bitTotal(num){
  264.                 modes=0;
  265.                 for (i=0;i<4;i++){
  266.                         if (num & 1) modes++;
  267.                         num>>>=1;
  268.                 }
  269.                 return modes;
  270.         }

  271.         //返回密码的强度级别
  272.         function checkStrong(pwd){
  273.                 modes=0;
  274.                 for (i=0;i<pwd.length;i++){
  275.                         //测试每一个字符的类别并统计一共有多少种模式.
  276.                         modes|=charMode(pwd.charCodeAt(i));
  277.                 }
  278.                 return bitTotal(modes);
  279.         }
  280. //-->
  281. </script>



  282. <!--{template footer}-->
复制代码
用了龙海模板,注册的时候密码随便输入什么字符就出现这个,但可以注册。该怎么解决呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
qloog 发表于 2010-3-29 13:57:41 | 显示全部楼层
我帮你顶起来,我的是输入用户名后 出现 那个  X 的图片,但是可以注册,这是为什么呢?
回复

使用道具 举报

 楼主| aiakos 发表于 2010-3-29 14:04:25 | 显示全部楼层
已经解决了 楼上的去打补丁就OK了
回复

使用道具 举报

qloog 发表于 2010-3-29 14:19:19 | 显示全部楼层
回复 3# aiakos


    打什么补丁呢?能详细说一下吗?  谢谢了!
回复

使用道具 举报

qloog 发表于 2010-3-29 14:38:35 | 显示全部楼层
,  aiakos  ,看到后赶紧回复一下吧!
回复

使用道具 举报

王可儿 发表于 2010-3-29 14:51:16 | 显示全部楼层
解决得真及时
回复

使用道具 举报

qloog 发表于 2010-3-29 14:52:25 | 显示全部楼层
哪呀,还没帮我解决了,你会的话也可以说一下啦!
回复

使用道具 举报

 楼主| aiakos 发表于 2010-3-29 16:06:37 | 显示全部楼层
ss不是有补丁的吗?
回复

使用道具 举报

zeo 发表于 2010-3-29 16:12:26 | 显示全部楼层
这个问题我刚解决,是模板的问题,因为你上面有登录框导致的,把页面上的登录框删除就可以了,两个输入密码的地方,注册的时候填写了一个密码,而检测到页面上面的登录框中密码是空的。
这是模板编写不完善,我估计不是补丁的问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 15:29 , Processed in 0.028151 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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