使用链接而不是表单按钮进行爬行的PHP年龄验证

使用链接而不是表单按钮进行爬行的PHP年龄验证,php,forms,session,Php,Forms,Session,我正在开发一个需要年龄验证的网站。如果有人访问该网站,则必须将其重定向到年龄验证页面,而不管键入的URL是什么。在理想情况下,这个年龄验证页面将不同于index.php,类似于/verification或类似的内容 我知道当使用表单按钮时,爬虫程序在通过验证时会遇到问题,所以我需要的是一个脚本,它可以处理两个链接:我超过18岁,我不到18岁。这两个链接将是链接到网站主页或网络中其他地方的图像 大多数年龄验证脚本都使用出生日期选择器,但经过一点研究,我无意中发现了以下代码: 酒精年龄验证示例页面

我正在开发一个需要年龄验证的网站。如果有人访问该网站,则必须将其重定向到年龄验证页面,而不管键入的URL是什么。在理想情况下,这个年龄验证页面将不同于index.php,类似于/verification或类似的内容

我知道当使用表单按钮时,爬虫程序在通过验证时会遇到问题,所以我需要的是一个脚本,它可以处理两个链接:我超过18岁,我不到18岁。这两个链接将是链接到网站主页或网络中其他地方的图像

大多数年龄验证脚本都使用出生日期选择器,但经过一点研究,我无意中发现了以下代码:


酒精年龄验证示例页面

进入本网站前,请确认您已年满21岁

有人能帮我用图片+链接代替提交按钮,并重定向到mydomain.com/verification代替mydomain.com/index.php来证明年龄吗?除了脚本,我还需要使用任何.htaccess规则吗


提前谢谢。

太复杂了。只要贴一张这样的图片:一个爬虫机器人有多大了?@Dagon你是从页面浏览量算的还是怎么算的/讽刺。当它达到测试版时,我会开始计数。@SLaRe不要复制和粘贴另一个问题的整个代码,试着制作一些显示图像并接受答案的代码,然后发布一个具体的问题,说明什么不适合你。不,您不需要。htacces只访问PHP和会话就足够了,如果会话没有有效的年龄验证,请将其发送到验证页面。
<?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>