2012-08-10 68 views
3

我想從referal網站訪問我的網站。我知道有很多計劃,例如谷歌分析,但會告訴你我的交通流量來自www.facebook.com。我想檢查流量是否來自我指定的某些特定網址,例如www.facebook.com/myfanpage。檢查流量是否來自特定網址?

Befor我想到了PHP我嘗試了幾種JavaScript方法,他們似乎沒有按照我想要的方式工作。對於我的PHP搜索,我只找到了這個功能。有任何想法嗎 ?

$_SERVER['HTTP_REFERER'] 

回答

9

$_SERVER['HTTP_REFERER']將做你所需要的。

if (strstr($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) { 
    // Facebook brought me to this page. 
} 

elseif (strstr($_SERVER['HTTP_REFERER'], 'google.com') !== false) { 
    // Google brought me to this page. 
} 
+0

這對許多瀏覽器不起作用。許多瀏覽器在跨域移動時選擇不發送HTTP_REFERER。 – 2013-07-26 16:42:35

+0

不錯的作品...... \ – user3501407 2014-07-13 15:00:50

+0

如果referer url是'example.com/facebook.com'怎麼辦? – 2018-02-18 21:55:32

1

$_SERVER['HTTP_REFERER']應該包含用戶來自您的頁面的URL。這不是一個功能。這只是一個價值。所以你可以用它來達到這個目的。

但請注意,該值很容易被欺騙。 (它來自HTTP請求標題,並且用戶可以發送他們想要的任何內容。)如果您只是爲了自己的興趣或任何其他情況收集統計信息,那麼這應該是可以接受的。但是,如果您嘗試使用它來保護頁面(例如,如果訪問者來自某個URL,則僅顯示某些內容),請將其忽略。

0

只有當HTTP請求有referer時,您才能夠檢查,它實際上是使用HTTP_REFERER在PHP中訪問的。所以它從推薦網站全權負責。

Get original URL referer with PHP?

上述職位也將幫助你。

3

對不起,我知道這是第6月中下旬,但肯定如果該URL是http://mydomain.com/?p=facebook.com那麼這也將是真的嗎?一種更好的方法是根據/然後提取第四部分來分解引用者URL,即

$refererUrl = $_SERVER['HTTP_REFERER']; 
$Exploded_URL = explode("/",$refererUrl); 
$urlToCheck = $Exploded_URL[3].'.'.$Exploded_URL[4]; 
if($urlToCheck == 'facebook.com'){ 
/* From Facebook */ 
} elseif ($urlToCheck == 'google.com'){ 
/* From Google */ 
} 
相關問題