在 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 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