杭州神话信息技术有限公司

标题: 论坛注册用户,登陆天天团购 提示用户名不能包含特殊字符 [打印本页]

作者: alley    时间: 2012-4-24 17:33:03     标题: 论坛注册用户,登陆天天团购 提示用户名不能包含特殊字符

本帖最后由 alley 于 2012-4-24 20:20 编辑

通过QQ登陆论坛的用户名 有时是特殊字符 登陆 用用户名登陆天天团购时 提示用户名不能包含特殊字符,无法登陆,望解决!

比如  !!凊颩  在论坛注册 可登陆,却无法登陆到天天团购   请告之解决方法

作者: 20℃    时间: 2012-5-8 16:20:11

求解释啊,都十多天了,怎么还没处理啊
作者: 泰山人家    时间: 2012-5-15 01:15:33

貌似官方还没有解决的方案
作者: Moyo    时间: 2012-5-15 09:26:30

编辑 /include/logic/account.logic.php

找到 return '用户名不能包含特殊字符!';

删掉即可
作者: alley    时间: 2012-5-15 11:50:03

本帖最后由 alley 于 2012-5-15 11:54 编辑
Moyo 发表于 2012-5-15 09:26
编辑 /include/logic/account.logic.php

找到 return '用户名不能包含特殊字符!';


非常感谢,已经解决! 不过想了解下当初不让特殊字符注册的目的是什么呢?特殊字符可以用的话 会不会有什么影响




作者: Moyo    时间: 2012-5-15 14:24:48

alley 发表于 2012-5-15 11:50
非常感谢,已经解决! 不过想了解下当初不让特殊字符注册的目的是什么呢?特殊字符可以用的话 会不会有 ...

允许使用特殊字符有可能会造成XSS攻击或者其他安全隐患

如果只有这一个用户存在此问题,或者用户名中的特殊字符只有感叹号这一种

你可以修改文件中 return '用户名不能包含特殊字符!';  上面的那句

preg_match('~[\~\`\!\@\#\$\%\^\&\*\(\)\=\+\[\{\]\}\;\:\'\"\,\<\.\>\/\?]~', $username)


替换成

preg_match('~[\~\`\@\#\$\%\^\&\*\(\)\=\+\[\{\]\}\;\:\'\"\,\<\.\>\/\?]~', $username)


PS 规则:

如果允许使用感叹号,就删掉上面那段代码中的  \!    ,依此类推






欢迎光临 杭州神话信息技术有限公司 (http://www.cenwor.com/) Powered by Discuz! X2