請選擇 進入手機版 | 繼續訪問電腦版

東里論壇

 找回密碼
 立即註冊

QQ登录

只需一步,快速开始

搜索
查看: 290|回復: 0

[使用心得] discuz用户注册时不能带“欣”和“衡”字的bug修改

[複製鏈接]

310

主題

457

帖子

2834

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
2834
發表於 2017-11-14 21:05:32 | 顯示全部樓層 |閱讀模式
在dz /uc_client/model/user.php和/uc_server/model/user.php文件中:
  1. function check_username($username) {
  2.                 $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
  3.                 if(preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
  4.                         return FALSE;
  5.                 } else {
  6.                         return TRUE;
  7.                 }
  8.         }
複製代碼

$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8'; 会匹配带有"欣"或"衡" 的用户名,因为在utf-8 中 , "欣"编码为:\xE6\xAC\xA3, "衡"编码为:\xE8\xA1\xA1。

上面这一行代码改为:
  1. $guestexp = '(?<!\xE8)\xA1\xA1|(?<!\xE6)\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
複製代碼


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

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|小黑屋|手機版|Archiver|東里論壇 ( 粤ICP备14015598号 ) 公安备案图标粤公网安备 44512202000019号

GMT+8, 2018-6-19 02:45 , Processed in 0.093749 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表