在 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