2013-04-01 149 views
1

我有一个安全的网页,只允许访问PHP中的某个IP地址,但我也添加了引用条件,以防万一我必须访问我的Intranet以外的地方进行编辑。由于某种原因,它无法正常工作。PHP:Header not working properly

我的继承人EDITED重定向页面名称in2.php(工作):

<?php 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<title>Redirecting...</title> 
<meta http-equiv="REFRESH" content="0;url=http://www.mysite.com/in.php"></HEAD> 
<BODY> 
</BODY> 
</HTML> 

这里是我的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的重定向,它会工作吗?

+0

您是否收到任何错误消息? – ajtrichards

+0

$ _SERVER [“HTTP_REFERER”]的价值是什么? –

+1

ip或referer都不是限制访问的安全方法。 referer是浏览器设置,并且ip是可拆卸的 – 2013-04-01 19:58:00

回答

2

header函数设置一个位置标题。您可能需要自行添加引用标头,因为您不告诉浏览器它只是重定向。更好的选择可能是发送正确的301或307。我现在正在使用我的电话,因此链接和参考由于懒惰而丢失;)。

+0

我接受了你的答案。如果有可能,当你有机会时,如果你可以详细说明301或307) – Si8