簡體   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