discuz “欣” “衡” 用户不能注册

原因是 discuz 有这样一段代码

function check_username($username) {
$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
if(preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
return FALSE;
} else {
return TRUE;
}
}

$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';

会匹配 ,带有"欣","衡" 的用户名,因为

再utf-8 中 , "欣"编码为:\xE6\xAC\xA3, "衡"编码为:\xE8\xA1\xA1

bug修改:

$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';

改为:

$guestexp = '(?<!\xE8)\xA1\xA1|(?<!\xE6)\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';

这样既可以匹配带有 \xA1\xA1|\xAC\xA3 编码的utf-8 特殊字符,又不会匹配 "欣","衡"。

最新文章

  1. CSS3里的display
  2. C#Winfrom系统打印机调用/设置默认打印机
  3. KASS分布式文件系统(Kass File System)
  4. 利用IE/FF的不同识别CSS来使用浏览器兼容问题
  5. BZOJ 1083 [SCOI2005]繁忙的都市
  6. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
  7. beanUtils操作bean的属性
  8. java中的重载与重写
  9. SQLite 附加数据库(http://www.w3cschool.cc/sqlite/sqlite-attach-database.html)
  10. GPU渲染流水线的简单概括
  11. 超详细的PDF Expert的注释功能介绍
  12. sping配置头文件
  13. php 配置xdebug
  14. Android 获取SD路径,存储空间大小的方法
  15. 冲刺NOIP复习,算法知识点总结
  16. Convert BST to Greater Tree
  17. maya中MFnMesh.h使用说明的翻译
  18. centos6编译安装mysql5.5
  19. POJ 1751 Highways 【最小生成树 Kruskal】
  20. epoll的两种工作模式

热门文章

  1. Dll中的方法向外返回dynamic类型可能会失败
  2. c#动态类型Dynamic
  3. eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.proje
  4. 【ng-zorro-antd】加入in-memory-web-api插件后icon不显示
  5. Restrictions.like(&quot;字段field&quot;,&quot;%表达式exp%&quot;);
  6. lucene7.1.0实现搜索文件内容
  7. PY简易爬虫
  8. 博弈论题目总结(二)——SG组合游戏及变形
  9. 自动装箱拆箱(Autoboxing,Unboxing)
  10. Linux思维导图之inode、mv、cp和硬软链接