我有一个php页面“view.php”
但我希望没有人通过点击或手动输入www.domain.com/view.php来直接查看页面,它必须来自index.php正在经历一些过程。即
index.php ==> view.php/id=$$$
我试过 $ _ SERVER ['REQUEST_URI'];
if ($_SERVER['REQUEST_URI'] =='www.domain.com/view.php')
header("location: index.php");
但是没有工作..
任何人都可以帮忙
答案 0 :(得分:1)
尝试使用POST变量
通过index.php文件中的表单发送它<form action="view.php" method="post">
<input type="hidden" vaue="test" name="KEY"/>
</form>
在你的view.php
中if(isset($_POST['key'])){
//LOAD FILE
}
虽然有不同的解决方案
答案 1 :(得分:0)
$ _ SERVER [“REQUEST_URI”]返回站点根目录相对路径,即“/view.php”或“/folder/file.php”。所以你的代码应该是if ($_SERVER["REQUEST_URI"] == "/view.php") { /* ... */ }
。还建议在重定向标头之后放置exit();
以防止后续代码执行。
你也可以像这样使用$ _SERVER [“HTTP_REFERER”] if(!$_SERVER["HTTP_REFERER"] == "http://www.your-domain.com/index.php") { /* ... */ }
有关详细信息,请参阅http://php.net/manual/en/reserved.variables.server.php