0

我正在开发一个需要年龄验证的网站。如果有人访问该网站,则必须将其重定向到年龄验证页面,无论输入的 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 规则吗?

提前致谢。

4

0 回答 0