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