2011-08-31 57 views
0

我有一個跟蹤腳本,用於將分析數據保存到我們公司的數據庫。我們有不少網站(大約2000個域名)和PPC廣告系列,我使用的腳本工作得很好。

我知道$_SERVER['HTTP_REFERER']不是100%可靠的,可以是空的也可以是欺騙的,無論如何,這只是我們進入的一小部分潛在客戶(我在跟蹤腳本中考慮了這一點)。

問題是,雖然我的$_SERVER['HTTP_REFERER'] var總是回到空白,如果我在受影響的頁面上回顯它,它將作爲當前頁面URL傳遞給跟蹤腳本(通過$_SESSION var)。這就好像(注意'好像',我知道情況並非如此)PHP用$_SERVER['REQUEST_URI']代替$_SERVER['HTTP_REFERER']。 這是從登陸頁面:

$_SESSION['keywords'] = $_SERVER['HTTP_REFERER']; 
require_once 'tracking.php'; 
$raw_query = $_SESSION['keywords']; 
$key_browser = getKeywords($raw_query); 
$keywords = $key_browser['keywords']; 
$referer = $key_browser['referer']; 
$user_agent = getBrowserOs($_SERVER['HTTP_USER_AGENT']); 
$br = $user_agent['browser']; 
$os = $user_agent['os']; 

跟蹤腳本是無關緊要的,因爲我通過它的變量沒有改變。

+1

你有沒有考慮過使用谷歌分析? –

+0

你能從腳本中發佈一些導致問題的相關代碼嗎? – DaveRandom

+0

@Briedis我們大量使用GA,但我也編制了他們的商業軟件,他們希望單獨的分析數據連接到他們的個別潛在客戶。 – k4t434sis

回答

0

嗯,我找不到合適的解決方案,因此我選擇使用隱藏字段,其值填充了javascript的document.referrer屬性,並將其簡單地傳遞給跟蹤腳本。雖然我不太高興,但我找不到更好的解決方案,但肯定有效。

3

如果您使用HTML標記(如<script src="mytracking.php"></script>)加載腳本,則referer將與request_uri相同,因爲request_uri是請求腳本的那個腳本。

如果鏈接被點擊,獲取來自哪個用戶的引用程序的唯一腳本是響應來自瀏覽器的請求的腳本。所有通過HTML標籤加載的資源都將當前頁面作爲引用者。順便提一句,它常被用作防止圖像和其他資源熱鏈接的保護。

+0

我不認爲是這種情況,HTTP_REFERER被保存爲$ _SESSION變量,因此我可以將它傳遞給跟蹤腳本。這聽起來非常接近正在發生的事情 – k4t434sis

+0

什麼是服務器配置?例如,你有nginx在Apache之前? –

+0

Apache/2.2.3(CentOS) – k4t434sis

相關問題