【即将关站通知●已关闭注册功能】,倒计时剩余:计算中...

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


缘由:因为想取消密码错误后,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修改提醒文字。
收藏 邀请

路过

雷人

握手

鲜花

鸡蛋


最新评论

在线支持
关闭
欢迎来到魔趣吧
如果你有建站技术问题、仿站需求、模板插件修改需求,请联系我们的技术支持!高效率,低价格的帮你搞定!
请认准魔趣吧唯一官网:www.moqu8.com,谨防假冒网站!

一般问题请到【求助区】发帖咨询(免费)!

邮箱咨询:
winkill2012@qq.com

邮箱咨询需注明:资源地址+本站用户名+具体问题,三者缺一不做处理。非本站资源不处理!
在线支持

关于魔趣吧|魔趣建站

魔趣吧,志在打造全国最大的建站资源共享平台。 本站提供海量免费的建站资源,包括WordPress模板、Discuz精仿模板、PHPWind模板、phpcms模板、Discuz精仿插件、帝国cms模板、织梦模板等上万精品模板!同时,提供各种建站素材、JS特效、整站程序源码!
服务中文站长,传播分享精神!建站,就来魔趣吧!!
2015-2024 魔趣吧 ( 豫ICP备2021024354号 )   豫公网安备41030402000182号 百度统计
HTTPS安全认证
|网站地图 | 已运行:天 
温馨提示:本站所有资源、教程、源码,不得用于非法站点及用途,否则,本站将终止提供任何服务! Powered by Discuz! Licensed