我正在开发一个需要年龄验证的网站。如果有人访问该网站,则必须将其重定向到年龄验证页面,无论输入的 URL 是什么。在理想情况下,这个年龄验证页面将不同于 index.php,类似于 /verification 或类似的东西。
我知道爬虫在使用表单按钮时无法通过此验证,所以我需要一个可与 2 个链接一起使用的脚本:我已满 18 岁,未满 18 岁。这两个链接将是链接到网站的主页或网络中的其他地方。
大多数年龄验证脚本都使用出生日期选择器,但经过一番研究,我偶然发现了这个问题中发布的这段代码:
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['YES'])) {
$redirect = isset($_GET['return']) ? urldecode($_GET['return']) : './';
$expire = isset($_GET['x']) && is_numeric($_GET['x']) ? intval($_GET['x']) : -1;
if ($expire == - 1) {
$_SESSION['verified'] = "yes";
header("location: " . $redirect);
exit(0);
}
if ($expire == 0) {
setcookie("verified", "yes", mktime(0, 0, 0, 01, 01, date("Y") + 30));
$_SESSION['verified'] = "yes";
header("location: " . $redirect);
exit(0);
}
setcookie("verified", "yes", (time() + $expire));
$_SESSION['verified'] = "yes";
header("location: " . $redirect);
exit(0);
}
else {
header("location: http://www.youtube.com/watch?v=gppbrYIcR80");
exit(0);
}
}
?>
function verified(){
$redirect_url = 'http://www.YOURSITEROOT.com/verify.php';
$expires = - 1;
session_start();
$validated = false;
if (!empty($_COOKIE["verified"])) {
$validated = true;
}
if (!$validated && isset($_SESSION['verified'])) {
$validated = true;
}
if (is_numeric($expires) && $expires == - 1 && !isset($_SESSION['verified'])) {
$validated = false;
}
if ($validated) {
return;
}
else {
$redirect_url = $redirect_url . "?return=" . $_SERVER['REQUEST_URI'] . "&x=" . $expires;
Header('Location: ' . $redirect_url);
exit(0);
}
}
verified();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Alcohol Age Verification Example Page
</title>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form action="" method="POST">
<p id="textVerify">
PLEASE VERIFY THAT YOU ARE OVER AGE 21 BEFORE ENTERING THIS SITE
</p>
<input name="NO" id="no" type="Submit" value="NO - Leave" />
<input name="YES" id="yes" type="Submit" value="Yes - Enter" />
</form>
</body>
</html>
有人可以帮助我使用图像+链接而不是提交按钮并重定向到 mydomain.com/verification 而不是 mydomain.com/index.php 来验证年龄吗?除了脚本,我还需要使用任何 .htaccess 规则吗?
提前致谢。