我想仅允许从给定页面访问某个页面(用户必须输入密码)。禁止直接在浏览器的URL字段中输入URL 我写了以下代码:
<?php
// only allow access through front door
$from = getenv("HTTP_REFERER");
if ($from != "http://www.mysite.net/password.php")
include("http://www.mysite.net/secret_nok_tgpxFC6phBRLw1Wh.php");
else
include("http://www.mysite.net/secret_ok_tgpxFC6phBRLw1Wh.php");
?>
这在Firefox中运行良好,但即使在URL字段中输入URL,IE8也会打开页面。我该如何解决这个问题?而且,我的做法是错误的吗?
TIA
史蒂文
修改
从我到目前为止的回复中我明白,正确的方法是使用(基于cookie)会话。谁能推荐我一个关于这个主题的好教程? (虽然php.net包含一些示例,但它是参考,而不是教程)
答案 0 :(得分:0)
答案 1 :(得分:0)
您需要使用Wireshark或Fiddler来检查Internet Explorer正在发送的HTTP标头。一旦你有了这个,就可以通过PHP验证来寻找可行的解决方案。
也就是说,你可能会对超级全球$_SERVER["HTTP_REFERER"]
答案 2 :(得分:0)
使用会话检查是否允许用户进入受保护区域。众所周知,IE不会发送HTTP_REFERER标头,而是打开了一些安全选项。它适用于IE6,但现在大部分时间都关闭了。