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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

注册时用户名检查存在问题(dzx2/2.5/3.0rc都存在)

[复制链接]
£翱翔白鹭 发表于 2013-5-6 14:05:56 | 显示全部楼层 |阅读模式
  1. function checkusername(id) {
  2.         errormessage(id);
  3.         var username = trim($(id).value);
  4.         if($('tip_' + id).parentNode.className.match(/ p_right/) && (username == '' || username == lastusername)) {
  5.                 return;
  6.         } else {
  7.                 lastusername = username;
  8.         }
  9.         if(username.match(/<|"/ig)) {
  10.                 errormessage(id, '用户名包含敏感字符');
  11.                 return;
  12.         }
  13.         var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
  14.         if(unlen < 3 || unlen > 15) {
  15.                 errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
  16.                 return;
  17.         }
  18.         var x = new Ajax();
  19.         $('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, '');
  20.         x.get('forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkusername&username=' + (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(username) : username.replace(/%/g, '%25')), function(s) {
  21.                 errormessage(id, s);
  22.         });
  23. }
复制代码
这是DZX3.0rc版的检查用户名js函数,当用户名存在#字符时,非IE浏览器下就会存在长度检查问题,如以ab#123注册时,ajax是以get方式请求:/forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkusername&username=ad#123,这时用户名就成ad了,#是锚点,用户名长度就是2。dzx2/2.5/3.0rc都存在此问题。临时解决方法:此函数里的
  1. if(username.match(/<|"/ig))
复制代码
修改为
  1. if(username.match(/<|"|#/ig))
复制代码
玻璃屋女孩 发表于 2013-5-6 14:21:41 | 显示全部楼层
这个理论上不是BUG,但可以做下兼容,感谢反馈。
回复

使用道具 举报

凯旋森林 发表于 2013-5-6 19:05:43 | 显示全部楼层
真专业  能不能 把 # 作为不许注册的字符 直接掩蔽掉呢
回复

使用道具 举报

 楼主| £翱翔白鹭 发表于 2013-5-13 10:45:35 | 显示全部楼层
凯旋森林 发表于 2013-5-6 19:05
真专业  能不能 把 # 作为不许注册的字符 直接掩蔽掉呢

临时解决方法里就是屏蔽掉#
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-5 09:47 , Processed in 0.025615 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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