我正在使用$_SERVER['HTTP_REFERER'];
来获取推荐人Url。它按预期工作,直到用户单击另一个页面并且引用者更改为最后一页。
如何存储原始参考网址?
答案 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