扫描二维码关注官方公众号
返回列表 发布新帖

[PT建站] 让nexusphp的PT支持中文名以及各种符号的账号

1823 8
发表于 2011-4-8 14:36:55 | 查看全部 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 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网络,所以无从下手了。

评论8

非洲白人 发表于 2011-4-8 14:45:44 | 查看全部
对应数据库不用改么
回复 点赞

使用道具 举报

sherryLv.9 发表于 2011-4-8 14:47:00 | 查看全部
也就支持灰主流符号啦?
回复 点赞

使用道具 举报

power12317@2楼主Lv.5 发表于 2011-4-8 14:58:42 | 查看全部
也就支持灰主流符号啦?
sherry 发表于 2011-4-8 14:47



    应该都支持了,当时找这个找可以用中文名这个找了好久,发现takesignup.php里面只有长度限制,没有可以支持中文名限制,后来还是某位技术牛人找到的,直接屏蔽掉这些代码也是他想出来的。
我试了一下,用户名 &&@&#RJH@J 注册毫无鸭梨。
看来特殊字符都支持了。
回复 点赞

使用道具 举报

power12317@2楼主Lv.5 发表于 2011-4-8 15:07:26 | 查看全部
对应数据库不用改么
非洲白人 发表于 2011-4-8 14:45



    数据库没有这项限制的,数据库里面除了user列表下的用户ID有对应用户名外,所有的记录用户操作数据都是以用户ID对应的,所以不用改什么。反倒如果修改ID就成了大麻烦,最好是在用户刚刚注册好并且未登录情况下修改,这时只是用户收件箱里面那份欢迎信息需要改一下对应ID即可,如果在里面操作了很多,如投票,聊天,评论,感谢,发种等等,那就彻底地无望了,改起来太麻烦了,不如把对应用户名改了。
回复 点赞

使用道具 举报

hustzjLv.8 发表于 2011-4-9 09:42:36 | 查看全部
打酱油的路过,学习了{:2_145:}
回复 点赞

使用道具 举报

147852369lei 发表于 2012-12-25 21:28:46 | 查看全部
文件中的相应部分改为这个就好了

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;
}
回复 点赞

使用道具 举报

Elite710 发表于 2012-12-27 03:02:27 | 查看全部
楼上又是正则。。。{:7_755:}
回复 点赞

使用道具 举报

waynept 发表于 2013-7-24 14:02:40 | 查看全部
非常好的帖子,支持楼主!!!
回复 点赞

使用道具 举报

回复

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

本版积分规则

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表