2011-05-27 51 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