如何在从某个页面重定向到另一个页面时获取引用URL

时间:2013-07-22 08:58:24

标签: php javascript html

我使用php header

从几个页面重定向到dev.php
<?php header(Location: dev.php); ?>

我想知道我在哪里重定向。

我试过了

<?php
print "You entered using a link on ".$_SERVER["HTTP_REFERER"];
?>

但只有在使用$_SERVER["HTTP_REFERER"];

访问dev.php时<a href="dev.php">Go to Developer Page</a>才有效

那我怎样才能获得推荐网址?

5 个答案:

答案 0 :(得分:2)

尝试以下内容。

<?php header(Location: dev.php?referrer=$_SERVER[PHP_SELF]); ?>

OR

header('Referer: '.$_SERVER['PHP_SELF']);
header(Location: dev.php);

如果上述方法不起作用,则必须使用会话。

答案 1 :(得分:1)

您可以在GET中传递变量:

<?php header('Location: dev.php?backurl='.$_SERVER[PHP_SELF]); ?>

然后以这种方式接受:

$backurl=$_GET['backurl'];

答案 2 :(得分:0)

您需要手动将referer添加到标题中:

header("Referer: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); // current page
header("Location: dev.php");

您也可以使用CURL来完成。在这里看一下示例函数: PHP - Referer redirect script

答案 3 :(得分:0)

$_SERVER["HTTP_REFERER"] = 'YOUR_URL';
header('Location: dev.php');
exit(0);

答案 4 :(得分:0)

referer标头相当不可靠,有防病毒软件和防火墙可以完全过滤它。你可以非常安全地依赖的唯一的东西是cookies和它们,会话。

Cookie存储在客户端,浏览器中,因此可以进行操作,但如果您要存储非关键信息,那么它们就足够了。

现在的会话依赖于cookie来启动它们。随机生成的哈希存储在cookie中,相应的数据存储在链接到该哈希的服务器上。当客户端请求下一页时,将检索此数据。有关会话的更多信息,请阅读corresponding section of the PHP manual

正如我所写,会议现在依赖于cookie,除非您意识到安全隐患,否则不应该这样做。但可以使用URL参数传递会话ID。

在旁注:为了使用cookie(以及它们与会话),设置和最终URL必须位于同一个域中。如果不是这种情况,您可以使用请求参数来传递信息。