我們在實際的項目開發(fā)過程中,經常會有這樣的需求,就是開發(fā)的平臺,需要做一個在線訪問人數的一個統(tǒng)計,這個有什么作用呢?最重要的就是可以讓網站管理者知道這個網站平臺的活躍度,是否受歡迎?以及怎樣更好的對這個平臺進行宣傳推廣提供數據化依據。
我們要統(tǒng)計在一段時間內訪問站點的人數,可以使用PHP,結合Mysql以及jQuery,展示一個統(tǒng)計在線人數以及訪客地區(qū)分布的示例。
通常,當訪客訪問網站時,頁面記錄用戶的cookie信息,當cookie過期即認為用戶不在線。本文中我們使用PHP記錄訪客IP,并在客戶端記錄cookie及過期時間,同時通過新浪IP地址接口,獲取訪客的地理位置(本例只記錄省份),一并寫入mysql表中,即可統(tǒng)計一段時間內的訪客總數,也可以查看訪客的地區(qū)分布。
HTML
我們在頁面上放置一個顯示當前在線人數的div#total以及一個用于展示訪客地區(qū)分布的列表#onlinelist,默認我們在列表中放置一張與加載動畫圖片,后面我們用jQuery控制當鼠標滑向時展示詳細列表。
CSS
我們用CSS來渲染顯示效果,為了就是不讓我們的示例很難看,下面的代碼中,我們使用了CSS3,時代在進步啊,所以建議使用現代瀏覽器預覽效果。
Mysql
我們要準備一張數據表online,用來記錄訪客IP、地區(qū)及訪問時間。整個示例統(tǒng)計過程都依賴這張表,其結構如下:
PHP
online.php用來記錄訪客信息,包括IP地址和地區(qū)。首先檢測數據表中是否有訪客IP記錄,如果有,則只更新訪問時間,否則,獲取用戶省份區(qū)域,并將用戶IP即省份區(qū)域插入到表中。在此,可以判斷是否存在訪客的cookie記錄,如果不存在則向新浪IP地址庫請求獲取訪客的區(qū)域信息,并設置cookie值和過期時間。最后,我們刪除表中已經過期的記錄,統(tǒng)計總記錄數并輸出,詳細請看代碼注釋。
函數get_client_ip()用來獲取用戶真實IP。
geo.php用來統(tǒng)計各省份(區(qū)域)訪客人數分布。通過查詢數據庫,并按省份分組排序即可,注意我們將最終的數據集以JSON的形式輸出,便于前端ajax交互。
jQuery
前端頁面需要做的是,頁面加載時展示訪客總數,即使用ajax請求online.php即可。然后當鼠標滑向統(tǒng)計箭頭時,通過ajax請求geo.php獲取各區(qū)域省份的在線人數,并以下拉的方式展現效果。
溫馨提示:該示例依賴jquery,所以別忘了在頁面中請先加載jquery庫。
南昌雅騰教育專注IT職業(yè)技術培訓,主要培養(yǎng):PHP軟件開發(fā)工程師、WEB前端開發(fā)工程師
學習熱線:15079188802(程老師)
QQ:1939594233