·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

[Discuz!]登录次数限制解决思路

845 2
发表于 2022-9-8 22:05:24 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
缘由:因为想取消密码错误后,15分钟的限制。在网上找到了以下的修改方法,但是修改后没有任何作用,查看了了DZ的整个流程,找到了合适的修改方法。

方法一(限制ip录入):
    最开始搜索网络教程需要修改 source/function/function_member.php 中有关 900(15分钟) 和 5(次数)即可,结果发现不行 全局找提示文字,发现跟次数提示的变量 loginperm, 全局搜索,source/class/class_member.php 中出现比较多,但还是找不到修改次数和时间的地方 折腾发现在代码里修改次数和时间的方法全部失效,考虑是不是写入本地缓存了,没有在代码里直接写,验证推测失败 思考是不是写到数据库里,检测数据库表,发现 pre_ucenter_failedlogins 在登录失败的时候,会记录次数,并且含有count和ip的变量,推测正确。 登录限制的流程应该是,用户登录失败,程序将该操作写入数据库,再次登录时,从数据库中读取该用户ip和已登录次数,进行比较,超过最大值(5),则进行相应操作。
没找到最大次数限制在哪里设定的,为解决问题,考虑直接禁止程序写入数据库。全局搜索 “count+1” ,最后定为到 uc_client/model/user.php 中数据库操作语句,直接禁用,可以解决问题。

// $this->db->query(“UPDATE “.UC_DBTABLEPRE.”failedlogins SET count=count+1, lastupdate='”.$this->base->time.”‘ WHERE ip='”.$ip.”‘ OR ip=’$username'”);

最后找到了全局配置的文件:uc_client/data/cache/settings.php

方法二(修改登录次数和时间间隔):
    尝试在dz文件 source/function/functionmember.php 中有关 900(15分钟) 和 5(次数),前台没有任何效果。 猜测是在ucenter主要控制
    测试后,发现在ucclient/data/cache/settings.php 文件中第28行变量“loginfailedtime”是控制登陆次数,修改为50”。在ucclient/model/user.php 中第236行变量“$expire”是控制时间间隔,修改为1s。 在source/laguage/lang_member.php修改提醒文字。






转自:技术学习小组http://blog.qiji.tech/archives/1572
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

浅生Lv.8 发表于 2022-9-8 22:05:55 | 查看全部
感谢 学习一下
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-16 14:52:14 | 查看全部
要取消Discuz!中密码错误后的15分钟限制,你可以通过以下步骤来实现。根据你的描述,你已经找到了一些关键点,但可能还需要进一步的调整。以下是详细的解决思路:

### 方法一:限制IP录入
1. **修改 `uc_client/model/user.php` 文件**:
   - 找到以下代码:
   
  1. $this->db->query("UPDATE ".UC_DBTABLEPRE."failedlogins SET count=count+1, lastupdate='".$this->base->time."' WHERE ip='".$ip."' OR ip='$username'");
复制代码

   - 你可以直接注释掉这行代码,或者将其修改为不更新 `count` 字段:
   
  1. // $this->db->query("UPDATE ".UC_DBTABLEPRE."failedlogins SET count=count+1, lastupdate='".$this->base->time."' WHERE ip='".$ip."' OR ip='$username'");
复制代码

   - 这样,登录失败时不会增加 `count` 字段的值,也就不会触发登录限制。

2. **修改 `uc_client/data/cache/settings.php` 文件**:
   - 找到 `loginfailedtime` 变量,将其值修改为一个较大的数值(例如50),这样可以增加允许的登录失败次数。
   - 找到 `$expire` 变量,将其值修改为1秒,这样可以减少登录失败后的等待时间。

### 方法二:修改登录次数和时间间隔
1. **修改 `source/function/function_member.php` 文件**:
   - 找到与登录次数和时间间隔相关的代码,通常会有类似 `900`(15分钟)和 `5`(次数)的变量。
   - 将这些值修改为你想要的数值。例如,将 `900` 修改为 `60`(1分钟),将 `5` 修改为 `10`(允许10次登录失败)。

2. **修改 `source/language/lang_member.php` 文件**:
   - 找到与登录失败提示相关的文字,修改为你想要的提示信息。

### 注意事项
- **缓存问题**:修改完代码后,记得清除Discuz!的缓存,以确保修改生效。你可以通过后台的“工具” -> “更新缓存”来清除缓存。
- **数据库备份**:在进行任何代码修改之前,建议先备份数据库和相关文件,以防出现意外情况。

### 总结
通过以上方法,你可以取消或调整Discuz!中的登录失败限制。如果你在实施过程中遇到任何问题,欢迎继续提问,我会尽力帮助你解决。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.178,GMT+8, 2025-6-1 12:58 , Processed in 0.596206 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表