2013-01-04 122 views
0

我想爲我的客戶提供一個JavaScript代碼片段(有點像谷歌分析),它將使用他們網站上的代碼並跟蹤他們網站上的訪問時間。我想爲此使用Cookie。通過Javascript或PHP刪除Cookie

我唯一的問題是最好的實現方式是什麼?有幾個選項我心目中:

  1. 我應該建立從PHP(這是將要坐在我的 域),並將該被視爲第三方的Cookie餅乾?
  2. 或者我必須從Javascript設置一個cookie,因爲它將從客戶端 側從我的網站加載?
  3. 或將是使用javascript設置cookie並使用PHP訪問 的最佳方式?
+0

當你說'放棄'餅乾你的意思是什麼? – vodich

+0

我的意思是設置cookie,以便我可以跟蹤用戶以及他在頁面上停留的時間。 – CodeCrack

+0

看到這個http://stackoverflow.com/questions/3534932/how-to-track-user-time-on-site – vodich

回答

2

如果您在JavaScript中設置Cookie,則Cookie的域將成爲網站的域名,而不是您的域名。所以這些信息在做類似的事情時是不可用的。

<script src="http://example.com/tracking-js.php"></script> 

換句話說,這是行不通的。

相反,您需要通過加載空白圖像,使用AJAX或(如何谷歌這樣做)將客戶端信息發送到您的web服務。

JavaScript中有很多參數可用,但不會發送到服務器(不在$_SERVER中)。 Google將該信息添加爲GET參數。

但是,如果您不需要這些數據,最簡單的方法是將您的腳本作爲圖像包含在客戶的網站上。

<img src="http://example.com/tracking.php" /> 

$_SERVER['HTTP_REFERRER']將是包含腳本的頁面的URL。 請務必將Content-Type設置爲'image/gif'並輸出空白的1像素gif。

使用AJAX時,請注意您需要使用CORS,這意味着請設置Access-Control-Allow-Origin響應標頭。

請注意,使用沒有jQuery的AJAX可能會很痛苦。由於您不關心響應,因此創建一個跟蹤圖像(使用JavaScript)可能是您的最佳選擇。閱讀this article關於如何實現這一點的基礎知識。

+0

我需要的數據,所以它看起來像AJAX解決方案會更優化。你能詳細說明一下嗎?我可以通過我的js腳本在客戶端加載jquery庫,或者只是給他們一個片段。然後,我會設置一個獨特的客戶端ID +網站信息的cookie,並通過AJAX將這些信息傳遞給我的PHP腳本? – CodeCrack

+0

如果添加有關AJAX/CORS +的信息,可以鏈接到關於跟蹤圖像的好文章。請注意,我建議使用追蹤圖像(而不是AJAX),這是一種久經考驗的方法。 –

+0

謝謝!但實際上我真的關心響應,因爲我不僅想跟蹤訪問持續時間,而且還想顯示一個圖像或鏈接,它將根據來自php腳本的響應指向另一個站點。(php腳本將根據數據庫中的某些參數選擇一個站點)。那在那種情況下會如何工作? – CodeCrack