2012-02-20 73 views
0

我有這樣的代碼在這裏:跟蹤用戶的頁面視圖的使用cookie的PHP

setcookie('visitcount',1+$_COOKIE['visitcount'],time()+60*60); 
$visitcount = $_COOKIE['visitcount']; 
print "Number of views: ".$visitcount; 

我試圖做的是跟蹤頁面視圖使用的cookie當前瀏覽器。我對這段代碼感到有點困惑,因爲當網頁訪問者第一次瀏覽網頁時,結果回來說「視圖數量:0」,當它應該是「視圖數量:1」時。

這是爲什麼?我認爲用上面的setcookie代碼,$ visitcount變量應該有一個值。但事實並非如此?

+0

你可以使用谷歌分析 - 它的漂亮:-) – 2012-02-20 02:30:35

回答

1

這條線:

setcookie('visitcount',1+$_COOKIE['visitcount'],time()+60*60); 

在發送值 「1 + $ _ COOKIE [ 'visitcount']」(這是= 1)到客戶端。

下一行$ _COOKIE ['visitcount']仍然是初始值(即第一次是'0'),因爲它來自請求。您需要從下一個請求中接收更新的COOKIE以獲取增量結果。

+0

如果是這樣的話,你告訴我的是,setcookie函數只發生在客戶端 - 服務器請求期間刷新web瀏覽器屏幕後,但在第一次web負載請求?這意味着如果是這樣的話,我將不得不將$ visitcount默認值設置爲1。 – awongCM 2012-02-20 03:51:26

+0

是的。服務器(PHP)將cookie發送給客戶端。在下一個請求時(即當客戶端發送它的cookie時),服務器端cookie的值被更新。服務器不應該更改請求cookie值,只發送更新的值。因此,將初始值設置爲'1'是合理的。 – JScoobyCed 2012-02-20 04:47:53

+0

感謝JScoobyCed。 – awongCM 2012-02-21 03:56:01