[英]Send a message with PHP header location redirect
是否可以在 PHP header 中包含一些消息:
header("Location: http://somesite.com");
header("Message: hello");
然后在 site.com:
$message = some_function(); // "hello"
我目前在 URL 中使用 $_GET 參數,但正在尋找替代方法,也許發送 $_POST?
我正在嘗試不使用 $_GET,或使用 cookies(我知道,這些是最好的方法..)
聽起來您想將一些額外的數據發送到您要重定向到的頁面。 不,這在查詢字符串之外是不可能的。 您應該了解這里發生了什么。
當您發送302
或301
狀態代碼以及Location:
標頭時,瀏覽器會看到此內容,然后向Location:
標頭指定的URL發出單獨的請求。 服務器未向該頁面發送任何內容。 就像用戶只是在瀏覽器中鍵入該新URL一樣。
我說這幾乎是因為在某些情況下,瀏覽器設置了引薦來源網址。 雖然不能保證。
您可以做的是發送某種包含更多信息的令牌。 也許您的頁面將消息保存在數據庫之類的東西中,然后在要重定向到的URL的查詢字符串中傳遞ID。
另外,如果您設置了會話/ cookie數據,並且要重定向到同一域中的某個內容,則可以在用戶最終登錄的頁面上閱讀該信息。
除了 Brad 的建議之外,您還可以在 url 中使用 # 發送一些信息而不影響查詢字符串,然后使用 js 捕獲它。
header("Location: http://somesite.com#success");
在 js 中:
if(window.location.href.indexOf('#success')>0) {
alert("operation successfully completed");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.