2009-10-05 64 views
4

是否有可能找出用戶來自哪裏?例如,我給客戶一個橫幅和鏈接。客戶可以將橫幅/鏈接放到任何網站上,可以對稱爲www.domain.com的網站說。跟蹤哪些用戶來自PHP?

當用戶點擊橫幅時,是否可以知道他來自哪裏(www.domain.com)?

回答

12

看看HTTP_REFERER變量。它會告訴你用戶在訪問您的網站之前所在的網站。

+0

用戶可以告訴他們的瀏覽器不發送引薦信息。 – gnud 2009-10-05 10:47:59

+1

用戶還可以告訴瀏覽器不顯示圖像。沒有什麼可以做的 – Marius 2009-10-05 10:49:39

+0

那麼我該怎麼做?使用HTTP_REFERER?還有其他方法嗎? – bbtang 2009-10-05 11:13:12

4

是的。您爲客戶提供了一個唯一的URL,例如www.yourdomain.com/in/e10c89ee4fec1a0983179c8231e30a45。然後,在數據庫中跟蹤這些URL和訪問。

真正的問題是跟蹤唯一訪問者。

+0

獨特的用戶?通過IP?雖然動態IP用戶會給我帶來麻煩。那麼,我喜歡你的獨特的網址的想法。我會考慮它。謝謝gnud :) – bbtang 2009-10-05 11:17:16

+0

很難知道其他用戶是新用戶,還是同一個人再次關注鏈接。或者是一個點擊機器人。這就是我的獨特用戶的意思。 – gnud 2009-10-05 11:24:54

0

$_SERVER["HTTP_REFERER"] 

雖然可以作爲它的客戶端設置並非總是可信的,但你可能不會在你的情況在意。

0

唯一的機會是您使用唯一的ID(如gnud指出)。這個你可以跟蹤包含的鏈接。推薦人可能會被更改/從瀏覽器或代理(許多公司這樣做)中刪除。

使用IP來跟蹤唯一訪問者是一個壞主意。 AOL仍保留IP地址,並且您可能會每隔幾分鐘使用不同的IP地址,而使用proxys yiur計數則不會很準確。

我會說,去與獨特的ID。

0

在某些情況下,$ _SERVER [「HTTP_REFERER」]將只在php(php.ini)配置register_globals布爾配置爲開時工作。

註冊全局變量可以允許在鬆散編碼的PHP應用程序中使用。通常在允許用戶發佈數據的應用程序中。

我過去使用了以下方法來檢查控制操作員輸入的應用程序中的引用。

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

沒有在會話變量中散列字符串,我不知道更有效的做法。有誰知道最佳做法?

最美好的問候,

布拉德