PHP header()仅在相对文件路径上刷新

时间:2017-01-09 09:14:42

标签: php

我遇到了一个奇怪的情况,在提交表单时我的页面无法正常刷新。

表格(page.php):

<form action="funcs/foo.php" method="post">
    <!-- various inputs -->
    <input type="submit" value="Post it">
</form>

功能(foo.php):

// statements updating database, changing page layout...
header("Location:$_SERVER[DOCUMENT_ROOT]/page.php");

通过将标题更改为以下内容,可以刷新page.php。

header("Location:../page.php");

我的问题是为什么?指定完整路径和相对路径之间的区别是什么?

2 个答案:

答案 0 :(得分:0)

  

标题( “位置:$ _ SERVER [DOCUMENT_ROOT] /page.php”);

首先,您引用数组索引错误(应该引用:$_SERVER['DOCUMENT_ROOT'])但除此之外您使用错误,因为Location从未在本地文件系统的上下文中的路径上运行,因为您错误地假设。因此,如果您想使用亲戚,即/foo,则并不意味着这是文件系统根目录中的foo文件夹,但它相对于foodocument root。因此传递DOCUMENT_ROOT会给你错误的路径,浏览器无法访问。

答案 1 :(得分:-1)

委内瑞特

header("Location:$_SERVER[DOCUMENT_ROOT]/page.php");进入header("Location:".$_SERVER['DOCUMENT_ROOT']."/page.php");

并检查是否$ _SERVER [&#39; DOCUMENT_ROOT& #39;]重定向确定。