• Register

Discuz! X1.5优化“密码错误次数过多,请 15 分钟后重新登录”

大家在玩论坛的时候,特别是长时间未登录的论坛,可能在输入错误密码达到一定次数后提示:“密码错误次数过多,请 15 分钟后重新登录”,这下可头大了,等15分后,心都凉了,所以这个用户体验并不好!

在discuz!X1.5中,可以做如下修改来改善这个用户体验,这里老杨尝试修改为30秒!

discuz!X1.5:依次打开 source - function 目录下的 function_member.php 文件,注:discuz!X 1.0需要修改:  function_login.php

搜索并替换其中的2处900为30,一处901为31即可!如下红色部分为修改后!

function logincheck() {

global $_G;

$return = 0;

$login = DB::fetch_first("SELECT count, lastupdate FROM ".DB::table('common_failedlogin')." WHERE ip='$_G[clientip]'");

$return = (!$login || (TIMESTAMP - $login['lastupdate'] > 30)) ? 4 : max(0, 5 - $login['count']);

if(!$login) {

DB::query("REPLACE INTO ".DB::table('common_failedlogin')." (ip, count, lastupdate) VALUES ('$_G[clientip]', '1', '$_G[timestamp]')");

} elseif(TIMESTAMP - $login['lastupdate'] > 30) {

DB::query("REPLACE INTO ".DB::table('common_failedlogin')." (ip, count, lastupdate) VALUES ('$_G[clientip]', '1', '$_G[timestamp]')");

DB::query("DELETE FROM ".DB::table('common_failedlogin')." WHERE lastupdate<$_G[timestamp]-31", 'UNBUFFERED');

}

return $return;

}

然后就是修改下前台提示:

依次打开 source - language 目录下的 lang_message.php 文件,修改为 'login_strike' => '密码错误次数过多,请 30 秒后重新登录'!

如果已经被锁定,可以用phpmyadmin删除数据表'pre_common_failedlogin'中的参数,然后重新登录即可!

在内网架设论坛的你一定知道这个修改是多么的人性!

版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/507.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

沙发木了,占个板凳也不错~ »

  • 股票推荐
    2010/11/21 at 12:04:58

    15分钟确实太长,那天我帮一朋友在易名登陆,不是论坛,也是15分钟。。。。

    nuodou 于 2010-11-21 12:32:33 回复

    15分钟,估计访客都忘记这事儿了

发表评论 

我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册