翼享吧 关注:164贴子:2,250
  • 10回复贴,共1

【技术贴】让nexusphp的PT支持中文名以及各种符号的账号

只看楼主收藏回复

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']);
这些都可以根据自己想要的情况修改。


IP属地:湖北1楼2013-03-06 14:09回复


    IP属地:湖北2楼2013-03-06 14:09
    回复


      IP属地:湖北3楼2013-03-08 20:48
      回复


        IP属地:湖北4楼2013-03-08 20:48
        回复


          IP属地:湖北5楼2013-03-09 10:12
          回复


            IP属地:湖北6楼2013-03-09 10:13
            回复


              IP属地:湖北7楼2013-03-09 10:13
              回复


                IP属地:湖北8楼2013-03-09 10:13
                回复
                  这样改不太安全吧。


                  IP属地:广东9楼2013-04-14 06:44
                  收起回复