让nexusphp的PT支持中文名以及各种符号的账号
本帖最后由 power12317 于 2011-4-8 18:42 编辑nexusphp默认是不支持中文名的,这点非常郁闷,看着U2,G.等网站都有中文名,所以我也研究了一下,终于找出来了。
打开网站源代码文件,以记事本方式打开include/functions.php,按ctrl+F弹出搜索框,搜索function validusername($username)
然后看到下面有$allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 这一行即用户名允许的字符,如果不符合,则显示失败。。
为了省事,直接将里面注释掉即可,即在每一行前面加//
也可以用/* */
中间放要屏蔽的代码。
如果看不顺眼,删除也行
例如我改了后的代码为
function validusername($username)
{
//if ($username == "")
//return false;
//屏蔽3404-3413行以支持中文用户名 The following characters are allowed in user names
//$allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//for ($i = 0; $i < strlen($username); ++$i)
//if (strpos($allowedchars, $username[$i]) === false)
//return false;
return true;
}
其实可以直接弄成这样
function validusername($username)
{
return true;
}
然后用户名就可以以任意字符命名了。
另外在takesignup.php里面,可以看到如下代码
if (strlen($wantusername) > 12) //用户名最大长度限制
bark($lang_takesignup['std_username_too_long']);
if ($wantpassword != $passagain)
bark($lang_takesignup['std_passwords_unmatched']);
if (strlen($wantpassword) < 6) //密码最小长度限制
bark($lang_takesignup['std_password_too_short']);
if (strlen($wantpassword) > 40) //密码最大长度限制
bark($lang_takesignup['std_password_too_long']);
这些都可以根据自己想要的情况修改。
至于nexusphp对IPV6支持这点,由于我这没有IPV6网络,所以无从下手了。 对应数据库不用改么 也就支持灰主流符号啦? 也就支持灰主流符号啦?
sherry 发表于 2011-4-8 14:47 http://www.gebi1.com/images/common/back.gif
应该都支持了,当时找这个找可以用中文名这个找了好久,发现takesignup.php里面只有长度限制,没有可以支持中文名限制,后来还是某位技术牛人找到的,直接屏蔽掉这些代码也是他想出来的。
我试了一下,用户名 &&@&#RJH@J 注册毫无鸭梨。
看来特殊字符都支持了。 对应数据库不用改么
非洲白人 发表于 2011-4-8 14:45 http://www.gebi1.com/images/common/back.gif
数据库没有这项限制的,数据库里面除了user列表下的用户ID有对应用户名外,所有的记录用户操作数据都是以用户ID对应的,所以不用改什么。反倒如果修改ID就成了大麻烦,最好是在用户刚刚注册好并且未登录情况下修改,这时只是用户收件箱里面那份欢迎信息需要改一下对应ID即可,如果在里面操作了很多,如投票,聊天,评论,感谢,发种等等,那就彻底地无望了,改起来太麻烦了,不如把对应用户名改了。 打酱油的路过,学习了{:2_145:} 文件中的相应部分改为这个就好了
function validusername($username)
{
if ($username == "")
return false;
// The following characters are allowed in user names
$allowedchars = "/^([\x{4e00}-\x{9fa5}A-Za-z0-9]*$)/u";
if (preg_match($allowedchars,$username))
return true;
return false;
} 楼上又是正则。。。{:7_755:} 非常好的帖子,支持楼主!!!
页:
[1]