PHP:标头工作不正常

PHP:标头工作不正常,php,Php,我有一个安全的网页,只允许访问PHP中的某个IP地址,但我还添加了一个referer条件,以防我必须访问内部网之外的内容进行编辑。由于某种原因,它不起作用 这是我在2.php中编辑的重定向页面名(工作): 重定向。。。 下面是我的in.php代码: <?php $visitor = $_SERVER['REMOTE_ADDR']; $referer = $_SERVER["HTTP_REFERER"]; if (preg_match("/152.12.3

我有一个安全的网页,只允许访问PHP中的某个IP地址,但我还添加了一个referer条件,以防我必须访问内部网之外的内容进行编辑。由于某种原因,它不起作用

这是我在2.php中编辑的重定向页面名(工作):


重定向。。。
下面是我的in.php代码:

    <?php
    $visitor = $_SERVER['REMOTE_ADDR'];
    $referer = $_SERVER["HTTP_REFERER"];
    if (preg_match("/152.12.32.65/", $visitor) || $referer == "http://www.mysite.com/in2.php") {
    << MY SITE >>
    }
    else {
    echo "not accessible";
    }
    ?>
}

}
当我从手机访问in2.php时,即使IP地址不同,它也应该允许我查看站点吗?我只得到“不可访问”文本。是因为我在in2.php中使用了一个“header()”函数吗?
如果我将其更改为HTML/Jquery重定向,它会工作吗?

header函数设置一个位置的头。您可能需要自己添加referer头,因为您没有告诉浏览器,它只是点击了重定向。更好的选择可能是发送正确的301或307。我现在正在打电话,所以由于懒惰,链接和引用丢失了;)

您是否收到任何错误消息?ip或referer都不是限制访问的安全方法。referer是浏览器集,ip可从php.net文档中找到:$\u SERVER['HTTP\u referer']-将用户代理引用到当前页面的页面(如果有)的地址。这是由用户代理设置的。并非所有的用户代理都会设置此功能,有些代理还提供了修改HTTP_REFERER的功能。简言之,它不能真正被信任……这不是一个可靠的检查变量。您可以使用session,在in2.php中设置session,然后将其重定向到In.php,然后检查session是否已设置not@Siamak.A.M,war10ck回答问题,
不是所有的用户代理都会设置这个
,good luckI接受了你的回答。如果有可能,当你有机会时,如果你能详细说明301或307:)
    <?php
    $visitor = $_SERVER['REMOTE_ADDR'];
    $referer = $_SERVER["HTTP_REFERER"];
    if (preg_match("/152.12.32.65/", $visitor) || $referer == "http://www.mysite.com/in2.php") {
    << MY SITE >>
    }
    else {
    echo "not accessible";
    }
    ?>
}