簡體   English   中英

如何在每個頁面加載時增加一個計數器(在PHP中)?

[英]How to increment a counter each page load (in PHP)?

我想要在用戶訪問網站的X頁面時發生某種操作

我是否必須在外部存儲計數器(在txt文件或數據庫中)?

我想不出將計數器設置為0的方法,然后在每次頁面加載時增加它。 計數器總是會重置為0,或者我錯過了一些明顯的東西?

使用$_SESSION數據來存儲個人查看的頁數非常簡單。

$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;

最簡單的方法是使用PHP的會話存儲

session_start();
@$_SESSION['pagecount']++;

PHP自動向用戶發送會話cookie,並將$ _SESSION的內容透明地存儲在與此cookie關聯的平面文件中。 您不需要為此問題推出自己的解決方案。

您可以在用戶首次訪問您的頁面時啟動會話,然后在每次用戶重新加載/訪問子頁面時增加該值。 另一種方法是在每個頁面上都有一個隱藏字段,並檢索其值,增加它並將其發布到新頁面。

<input type="hidden" value="2" id="blabla" />

簡短的回答是肯定的,你必須在外部保存它,因為php(默認情況下)具有零內存持久性策略。 這基本上意味着一旦你的php腳本運行,內存中就沒有任何東西了。

對於流量較低的站點,您可能需要考慮一個簡單的txt文件,您可以在其中讀取,增加和寫入。 對於更高流量的站點,一個非常簡單的mysql表可能會起作用。

您是否已經有辦法確定用戶是誰(如用戶名和密碼),即使他們離開網站又回來了一天? 或者您只是想跟蹤訪問者看到的頁面數量,並在查看的第x頁上做一些特別的事情。

如果是第二個,您已經有一個會話變量,您可以在其中存儲計數器。

$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...

你會使用if語句檢查它是否已經設置;

if( isset($count) )
{
   $count = $count + 1;
}
else
{
   $count = 1;
}

您還可以使用get方法將計數放入URL中,這樣您就不必將計數寫入文件或數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM