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

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

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 '账号或密码错误。';
    }
}