按照这个代码账号登陆密码错误超过5次限制登陆10分钟,当一个账号限制后不同账号登陆时依旧会限制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 '账号或密码错误。';
}
}