使用PHP获取原始URL引用?

时间:2009-12-08 04:27:06

标签: php http-referer

我正在使用$_SERVER['HTTP_REFERER'];来获取推荐人Url。它按预期工作,直到用户单击另一个页面并且引用者更改为最后一页。

如何存储原始参考网址?

5 个答案:

答案 0 :(得分:129)

将其存储在cookie中(如果您的情况可接受)或会话变量。

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

答案 1 :(得分:17)

正如Johnathan建议的那样,您要么将其保存在cookie或会话中。

更简单的方法是使用Session变量。

session_start();
if(!isset($_SESSION['org_referer']))
{
    $_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}

将它放在页面顶部,您将始终能够访问网站访问者所指向的第一个引用者。

答案 2 :(得分:4)

将其存储在仅持续当前浏览会话的Cookie中

答案 3 :(得分:4)

在大多数情况下,使用Cookie作为参考页面的存储库要好得多,因为在浏览器关闭之前cookie将保留引用(即使关闭浏览器选项卡也会保留它),以防万一用户离开页面,让我们说在周末之前,并在几天后回到它,你的会话可能会过期,但cookie仍然会在那里。

将该代码放在页面的开头(在任何html输出之前,因为只有在任何echo / print之前才能正确设置cookie):

if(!isset($_COOKIE['origin_ref']))
{
    setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}

然后您可以稍后访问它:

$var = $_COOKIE['origin_ref'];

除了@pcp建议有关转义$ _SERVER ['HTTP_REFERER']的内容之外,当使用cookie时,您可能还想在每个请求中转义$ _COOKIE ['origin_ref']。

答案 4 :(得分:0)

尝试

movie