繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM