Gt199 2023-04-15 22:09 采纳率: 83.3%
浏览 18
已结题

如何用php实现登陆次数限制

以教务系统学生端登陆为例,登陆错误限制5次,超过10分钟内无法登陆,该如何实现?

  • 写回答

1条回答 默认 最新

  • CQ.abc 2023-04-15 22:11
    关注
    session_start(); // 开启 Session
    
    $max_attempts = 5; // 最多尝试次数
    $block_duration = 10 * 60; // 阻塞时间(单位:秒)
    
    if (isset($_SESSION['attempts'])) {
        $attempts = $_SESSION['attempts'];
    } else {
        $attempts = 0;
    }
    
    if (isset($_SESSION['last_attempt_time'])) {
        $last_attempt_time = $_SESSION['last_attempt_time'];
    } else {
        $last_attempt_time = 0;
    }
    
    if ($attempts >= $max_attempts && time() - $last_attempt_time < $block_duration) {
        $remaining_time = $block_duration - (time() - $last_attempt_time);
        echo '您已经尝试了 ' . $attempts . ' 次,请在 ' . $remaining_time . ' 秒后再试。';
    } else {
        // 处理登录逻辑
        if ($login_successful) {
            // 登录成功,清空记录
            $_SESSION['attempts'] = 0;
            $_SESSION['last_attempt_time'] = 0;
        } else {
            // 登录失败,记录次数和时间
            $_SESSION['attempts'] = $attempts + 1;
            $_SESSION['last_attempt_time'] = time();
            echo '账号或密码错误。';
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月15日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系