• 注册
热门标签
↑ 收起导航

优化Discuz! X1.5用户登录失败5次后显示验证码框

准备对Discuz! X1.5的用户登录部分做一点小优化,实现当用户登录失败5次,或相应次数后,显示验证码输入框,而不是discuz默认的需要等待15分钟后再次登录。这样一来,不仅能起到防灌水的效果,而且也不会对用户造成一种无形的压力!

首先修改用户登录错误次数的记录,找到文件 source/function/function_member.php 中的logincheck()函数,代码如下:

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'] > 900)) ? 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'] > 900) {
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]-901", 'UNBUFFERED');
}
return $return;
}

持续修改ing

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

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

发表评论 



我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册