4位随机验证码,输入正确时进入网站首页。输入错误时提示错误。 每次输入的验证码有效期为3分钟。其中setcookie("isview", "true", time() + 60 * 3); 是isview状态的过期时间,可以自己改成需要的。
[Asm] 纯文本查看 复制代码 <?php
function generateRandomCode($length = 4) {
$characters = '0123456789';
$code = '';
for ($i = 0; $i < $length; $i++) {
$code .= $characters[rand(0, strlen($characters) - 1)];
}
return $code;
}
$p = "";
// 提交表单时的处理
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST["pwd"])) {
$password = $_COOKIE["password"];
if ($_POST["pwd"] == $password) {
setcookie("isview", "true", time() + 60 * 3);
header("Location: " . $_SERVER['PHP_SELF']);
exit;
} else {
$p = "密码不正确,请重新输入。";
}
}
}
// 检查是否已输入正确密码
$isview = isset($_COOKIE["isview"]) && $_COOKIE["isview"] == "true";
if (!$isview) {
$password = generateRandomCode(); // 生成一个新的验证码
setcookie("password", $password);
}
if ($isview) {
echo "网站首页内容";
} else {
echo "<h1>请输入验证码</h1>";
echo '<form action="" method="post">';
echo '<input type="password" name="pwd" placeholder="验证码是 ' . $password . '">';
echo '<input type="submit" class="submit-button" value="确定" />';
echo '</form>';
if ($p) {
echo '<p>' . $p . '</p>';
}
}
?> |