加一个判断防止二次刷新作弊让这个10秒后自动锁定无法作弊ifisset$_POSTpassword $password = $_POSTpassword; if$password == 19 密码正确跳转到主页 headerLocation indexphp; exit; else 密码错误弹出提示
<p>改进后的代码:</p>
<p>// 判断是否已经输入过密码
if(isset($_POST['password']) && !isset($_SESSION['is_locked'])) {
$password = $_POST['password'];
if($password == '19') {
// 密码正确,跳转到主页
header('Location: index.php');
exit;
} else {
// 密码错误,弹出提示
echo '<script>alert("密码错误!");</script>';
}
} else {
// 如果已经输入过密码或还未到锁定时间,则显示网站内容
echo '欢迎访问我的网站!';
}</p>
<p>// 10秒后自动锁定
echo '<script>
setTimeout(function() {
document.body.innerHTML = "<form method="post"><input type="password" name="password" placeholder="请输入密码"></form>";
// 设置锁定状态,防止二次刷新作弊
';
// 开启session
session_start();
echo 'sessionStorage.setItem("is_locked", "true");';
// 关闭session
session_write_close();
echo ' }, 10000);
</script>';</p>
<p>解释:</p>
<ol>
<li>
<p>添加了一个session的判断,防止二次刷新作弊,只有在第一次输入密码且未到锁定时间时才能继续访问。</p>
</li>
<li>
<p>在锁定页面时,设置了一个sessionStorage的变量,表示已经锁定,防止二次刷新作弊。</p>
</li>
<li>
<p>开启了session,确保sessionStorage的变量在不同页面间都可以共享。</p>
</li>
<li>
<p>在锁定页面的script标签中关闭session,避免影响其他部分的session使用。</p>
</li>
</ol>
原文地址: https://www.cveoy.top/t/topic/b4MM 著作权归作者所有。请勿转载和采集!