在 PHP 中返回上一頁

Subodh Poudel 2022年12月21日
在 PHP 中返回上一頁

本文將介紹 PHP 中返回上一頁的一些方法。

在 PHP 中使用 HTTP_REFERER 請求標頭返回到上一頁

HTTP_REFERER 請求標頭返回在 PHP 中請求當前頁面的頁面的 URL。標頭使伺服器能夠確認使用者訪問當前頁面的位置。標頭用作 $_SERVER 陣列的索引。我們可以使用帶有 location 標頭的 header() 函式將當前頁面重定向到上一頁。我們應該將 location 設定為 $SERVER['HTTP_REFERER'] 以返回上一頁。

讓我們看看 HTTP_REFERER 標頭是如何工作的。例如,在 HTML 中建立一個按鈕。將 action 屬性​​設定為 home.php,將 method 屬性設定為 post。將檔案另存為 index.php。在 home.php 檔案中,檢查表單是否使用 isset() 函式提交。然後,使用 echo 函式顯示 $_SERVER[HTTP_REFERER] 標頭。

示例程式碼:

<form action ="home.php" method = "POST">
<button type="submit" name="button"> Submit</button>
</form>
if(isset($_POST['button'])){
 echo $_SERVER[HTTP_REFERER]; 
}

輸出:

http://localhost/index.php

在這裡,我們在 index.php 檔案中建立了表單。然後,表單被提交到 home.php 檔案。這意味著 home.php 頁面是從 index.php 頁面請求的。因此,index.php 頁面是引薦來源網址。上面的輸出部分顯示 HTTP_REFERER 返回 URL http://localhost/index.php,即引薦來源網址。

我們的目標是將當前頁面 home.php 重定向到前一頁面 index.php

例如,在 home.php 檔案中,建立一個變數 $message 來儲存重定向發生後要顯示的訊息。使用 urlencode() 在其引數中寫入訊息。接下來,編寫 header() 函式來設定重定向的位置。連線 $_SERVER[HTTP_REFERER]"?message=".$message 並在 header() 函式中將其設定為 location 的值。接下來,呼叫 die 函式。在 index.php 檔案中,使用 echo 函式在表單正下方列印 $_GET['message'] 變數。

在這裡,我們使用 urlencode() 函式來編寫訊息,因為訊息是在 URL 中查詢的字串。 $_GET 陣列中的 message 索引是我們在 URL 中使用的變數,該變數引用 header() 函式中的上一頁。

當我們點選 index.php 頁面上的按鈕時,表單被提交到 home.php 並將重定向回 index.php 頁面,即上一頁。

這樣,我們可以使用 header() 函式和 HTTP_REFERER 標頭將當前頁面返回到 PHP 中的前一頁面。

示例程式碼:

//index.php
<form action ="home.php" method = "POST">
<button type="submit" name="button"> Submit</button>
</form>

<?php
if(isset($_GET['message'])){
 echo $_GET['message'];
}
?>
//home.php
if(isset($_POST['button'])){
$message = urlencode("After clicking the button, the form will submit to home.php. When, the page home.php loads, the previous page index.php is redirected. ");
header("Location:".$_SERVER[HTTP_REFERER]."?message=".$message);
die;
}
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - PHP Redirect