老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
3,041

Discuz! X3.* “密码错误次数过多,请 15 分钟后重新登录”完美修改

分类 网站技术/村民张先生 发布于 2016-05-03 01:20
0

首先恭喜您看到本文,目前百度里搜到的其它修改方法都存在一些问题,
如果您要转载本文,请注意附带本页链接,非常感谢!

Discuz! 默认情况下,用户登录时输错密码 5 次将被锁定 15 分钟。
以下将其修改为输错 10 次锁定 5 分钟,您也可以根据自己的需要调整。

1、打开 uc_client/control/user.php 文件,

查找:

		$this->settings['login_failedtime'] = is_null($this->settings['login_failedtime']) ? 5 : $this->settings['login_failedtime'];

将其中的 5 修改为 10 或其它您需要的容错次数,接下来的步骤中设定的次数须与此处保持一致!

2、打开 uc_client/model/user.php 文件,

查找:

		$check_times = $this->base->settings['login_failedtime'] < 1 ? 5 : $this->base->settings['login_failedtime'];

		$username = substr(md5($username), 8, 15);
		$expire = 15 * 60;

将第一行中的 5 改为与本文第一步中相同的容错次数;
将 15 * 60 修改为 5 * 60 或其它您需要的错误锁定时间,接下的步骤中设定的锁定时间尽量与此处保持一致!

3、打开 source/function/function_member.php 文件,

查找:

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

		if(!$login) {
			C::t('common_failedlogin')->insert(array(
				'ip' => $_G['clientip'],
				'count' => 0,
				'lastupdate' => TIMESTAMP
			), false, true);
		} elseif(TIMESTAMP - $login['lastupdate'] > 900) {
			C::t('common_failedlogin')->insert(array(
				'ip' => $_G['clientip'],
				'count' => 0,
				'lastupdate' => TIMESTAMP
			), false, true);
			C::t('common_failedlogin')->delete_old(901);

将第一行中的两处 5 修改为之前步骤中指定的容错次数;
将其中的两处 900 (秒,即15分钟)修改为 300 或您需要的锁定时间(与之前步骤中指定的锁定时间<折算成秒>保持一致)。

4、打开 source/language/lang_message.php 语言包,

查找:

  'login_strike' => '密码错误次数过多,请 15 分钟后重新登录',

将分钟数修改为之前步骤中指定的锁定时间(分钟)。

来源:大张小站 https://www.zhang.cq.cn/wenzhang-1713.html

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20161713.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截