[英]PHP header() only refreshing on relative file path
我遇到了一个奇怪的情况,即我的页面在提交表单时无法正确刷新。
表单( 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");
我的问题是为什么? 指定完整路径和相对路径有什么区别?
header("位置:$_SERVER[DOCUMENT_ROOT]/page.php");
首先,您引用了错误的数组索引(应该引用: $_SERVER['DOCUMENT_ROOT']
),但除此之外,您使用它是错误的,因为Location
永远不会像您错误地假设的那样对本地文件系统上下文中的路径进行操作。 因此,如果您想使用相对,即/foo
它并不意味着这是文件系统根目录中的foo
文件夹,而是foo
相对于document root
。 所以传递DOCUMENT_ROOT
会给你错误的路径,浏览器无法访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.