2011-05-27 17 views
1

如果$_SERVER['HTTP_REFERER']未打开且您没有访问php.ini文件,是否可以获得引荐页面?无HTTP_REFERER获取引荐页面

我使用了print_r($_SERVER),并且在回显数据中没有看到HTTP_REFERER。

下面是我的脚本来获取引用网站信息,但现在我需要使用JavaScript,但我不知道如何解决它:

<? 
    //ini_set("display_errors","2"); 
    //ERROR_REPORTING(E_ALL); 
    $last_page = GetHostByName($_SERVER['HTTP_REFERER']); 

    if(strpos($last_page,"fall2011")) { 
     echo '<li><a href="'. $last_page .'" class="navigation-link">Fall 2011</a></li>'; 
    } else { 
     echo $last_page; 
    }  
?> 
+0

'$ _SERVER ['HTTP_REFERER']'只有当页面从另一页面到达时才会显示。即。如果你直接进入该页面,它将不会在那里。 – RDL 2011-05-27 03:00:05

+0

我一直在从另一个站点链接。 – Denoteone 2011-05-27 03:14:49

回答

2

那是不可能的。

最好你可以做的就是投入一些JavaScript。

var referrer = document.referrer; 

如果需要这在PHP端(因此要求不能仅仅通过JS来完成),那么你就需要让JS阿贾克斯发送,或将其添加为隐藏输入字段,或作为查询字符串附加到内部页面链接。困难的部分是将正确的引用链接与服务器端请求的页面相关联。

+0

我可以将“referrer”保存到一个php变量中吗? – Denoteone 2011-05-27 03:16:54

+1

确实,您可以通过Ajax或表单提交或单击内部链接将其作为请求参数传递到服务器端,然后通过Ajax或表单提交或单击内部链接进行操作。我认为Ajax将会是最方便的,因为它可以在页面加载期间执行。或者,您也可以让JS写/添加一个''元素,它指向一个透明的1x1 GIF,而后者实际上指向一个PHP脚本并将引用作为查询字符串传递给URL。 – BalusC 2011-05-27 03:21:14