2013-03-26 90 views
0

如果有人從谷歌來到我的網站,我該如何找到p h p?來自谷歌的PHP訪問者

<?php 
    if (isset($_COOKIE['source'])) { 
     $arr = explode("=",$_COOKIE['source']); 
     $_SESSION['source'] = $arr[1]; 
     unset($_COOKIE['source']); 
    } 
?> 

這是我得到的來源,知道哪裏是我的網站之前,訪問者和我想設置$_SESSION['source']="google"如果他正在尋找在谷歌找到我的網頁。

+1

在代碼的頂部使用'session_start();'。 – HamZa 2013-03-26 08:29:01

+1

關鍵字是** referer **。諷刺的是,谷歌應該幫助。 – deceze 2013-03-26 08:30:14

+2

http://stackoverflow.com/questions/700672/how-do-you-detect-if-your-website-visitor-came-from-a-google-search-result – 2013-03-26 08:33:37

回答

1

用途:$_SERVER['HTTP_REFERER']

if(strpos($_SERVER['HTTP_REFERER'], 'google')) 
echo 'comes from google'; 
+0

我該如何在本地服務器上測試它? – 2013-03-26 08:35:02

0

嘗試檢查$ _SERVER ['HTTP_REFERER']。這個全局變量應該包含引用者url。

+0

我認爲較新的問題是谷歌使用HTTPS這意味着引用者不會被髮送。至少我在Piwik Analytics工具中認識到這一點,谷歌的結果表示,由於谷歌使用HTTPS作爲其搜索引擎,因此關鍵字(屬於引用者)不會再提交給目標網站。 – Aufziehvogel 2013-03-26 08:34:03

+0

啊,[根據Google](http://support.google.com/websearch/bin/answer.py?hl=zh_CN&answer=173733),只有搜索字詞不再是引薦者的一部分。所以至少可以確定是否有人通過谷歌進入。 – Aufziehvogel 2013-03-26 08:45:49

0

這是我會怎麼做。它會解析給定的URL(如果有),然後刪除所有不需要的信息,例如Top-Level-Domain或第三級或更低級別的域,所以我們只剩下第二級域(google)。

function isRequestFromGoogle() { 
    if (!empty($_SERVER['HTTP_REFERER'])) { 
     $host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); 
     if (!$host) { 
      return false; // no host found 
     } 

     // remove the TLD, like .com, .de etc. 
     $hostWithoutTld = mb_substr($_SERVER['HTTP_REFERER'], 0, mb_strrpos($_SERVER['HTTP_REFERER'], '.')); 
     // get only the second level domain name 
     // e.g. from news.google.de we already removed .de and now we remove news. 
     $domainName = mb_substr($hostWithoutTld, mb_strrpos($hostWithoutTld, '.') + 1); 

     if (mb_strtolower($domainName) == 'google') { 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 
+0

它適用於來自adwords的用戶,但谷歌沒有發送任何參數,而我的$ _SERVER ['HTTP_REFERER']爲空,因此我無法判斷他們是在谷歌上搜索還是直接在我的頁面上輸入。 – 2013-03-26 09:23:20

+0

我認爲如果引薦人是空的,你什麼都做不了。這是可能的,我認爲這是該人訪問過的先前URL的唯一資源(儘管有一些Javascript黑客攻擊,在那裏你可以看到瀏覽器的歷史記錄,在一些錯誤的瀏覽器中可能有一段時間,但現在應該是不可能的)。 – Aufziehvogel 2013-03-26 09:45:05

相關問題