执行重定向时获取请求页面名称或URL

时间:2014-04-12 08:14:20

标签: php

如何获取加载源页面的请求页面名称或uri。

以下说明:

的index.php

<?php
  header('Location:target.php');
?>

target.php

<?php
  // How to check here if the redirection has happened from index.php
?>

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码

echo $_SERVER["HTTP_REFERER"];

但是为了确保您能够真正获得页面的确切来源,您可以在执行重定向之前将当前URL存储到会话中并将其读取到下一页。

在原始页面

$_SESSION['origin'] = $_SERVER['REQUEST_URI'];

然后在下一页

echo $_SESSION['origin'];

答案 1 :(得分:2)

您可以使用$ _SERVER [“HTTP_REFERER”],但不能信任它。某些浏览器将具有正确的值,其他浏览器将具有空值。

这是php手册所说的:

  

'HTTP_REFERER'引用的页面地址(如果有的话)   用户代理到当前页面。这是由用户代理设置的。不是全部   用户代理将设置此,并且一些提供修改的能力   HTTP_REFERER作为一项功能。 简而言之,它无法真正被信任。

简而言之,我认为您无法获得所需的可靠解决方案。