通過(guò)PHP MYSQL實(shí)現(xiàn) 網(wǎng)站在線人數(shù)統(tǒng)計(jì)_PHP教程
推薦:《PHP設(shè)計(jì)模式介紹》關(guān)于本書(shū)說(shuō)明中國(guó)站長(zhǎng)站關(guān)于《PHP設(shè)計(jì)模式介紹》的說(shuō)明 《PHP設(shè)計(jì)模式介紹》一書(shū)的英文原名是“ Guide.to.PHP.Design.Patterns ”,此書(shū)由Marco Tabini & Associates, Inc.出版,原作者是Ja
網(wǎng)站在線人數(shù)的程序代碼,后臺(tái)有MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫(kù)支持�?梢灾苯咏y(tǒng)計(jì)出網(wǎng)站當(dāng)前的在線人數(shù)。
首先是創(chuàng)建MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫(kù)表。
| CREATE TABLE tablename ( field type(max_length) DEFAULT 'default_value' (NOT) NULL } |
可以使用的SQL語(yǔ)句。
|
CREATE TABLE useronline ( |
| $server = "localhost"; //你的服務(wù)器 $db_user = "root"; //你的MySQL(和PHP搭配之最佳組合)的用戶名 $db_pass = "password"; //你的MySQL(和PHP搭配之最佳組合)的密碼 $database = "users"; //表的名字 |
設(shè)置統(tǒng)計(jì)的時(shí)間(多少秒內(nèi)在線人數(shù))
| $timeoutseconds = 300; |
取當(dāng)前時(shí)間。
| $timestamp = time(); |
上面的完整代碼:
| <?php $server = "localhost"; //your server $db_user = "root"; //your MySQL(和PHP搭配之最佳組合) database username $db_pass = "password"; //your MySQL(和PHP搭配之最佳組合) database password if any $database = "users"; //the db name $timeoutseconds = 300;//timeoutseconds limit //get the current time $timestamp = time(); //calculate the lowest timestamp allowed $timeout = $timestamp-$timeoutseconds; ?> |
連接MySQL(和PHP搭配之最佳組合)
| MySQL(和PHP搭配之最佳組合)_connect('localhost', 'username', 'password'); |
也允許使用變量形式。
| MySQL(和PHP搭配之最佳組合)_connect($server, $db_user, $db_pass); |
如果MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫(kù)沒(méi)有密碼的話可以使用下面代碼連接(當(dāng)然建議大家一定要設(shè)置好自己的密碼,這樣起碼黑客得要解密�。�
| MySQL(和PHP搭配之最佳組合)_connect($server, $db_user); |
查詢數(shù)據(jù)庫(kù)的代碼:
| MySQL(和PHP搭配之最佳組合)_db_query('database', 'query'); |
我們只要有訪客就要增加一條記錄。
| $insert = MySQL(和PHP搭配之最佳組合)_db_query($database, "INSERT INTO useronline VALUES ('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')"); |
然后我們給出如果用戶用錯(cuò)誤信息的處理方式。
| if(!($insert)) { print "Useronline Insert Failed > "; } |
然后我們得實(shí)現(xiàn)當(dāng)超過(guò)我們?cè)O(shè)置的時(shí)間我們就要?jiǎng)h除該用戶記錄。
| $delete = MySQL(和PHP搭配之最佳組合)_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout"); |
同樣給出刪除記錄出錯(cuò)的處理。
| if(!($delete)) { print "Useronline Delete Failed > "; } |
下面我們顯示數(shù)據(jù)庫(kù)中有多少個(gè)不同的IP
| $result = MySQL(和PHP搭配之最佳組合)_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='".$_SERVER['PHP_SELF']."' "); |
我們使用MySQL(和PHP搭配之最佳組合)_num_rows(query);來(lái)統(tǒng)計(jì)用戶,代碼如下:
| $user = MySQL(和PHP搭配之最佳組合)_num_rows($result); |
最后我們要關(guān)閉數(shù)據(jù)庫(kù)。
| MySQL(和PHP搭配之最佳組合)_close(); |
顯示在線的人數(shù)。
| if($user == 1) { print("1 user online\n"); } else { print("$user users online\n"); } |
最終把上面代碼寫(xiě)成一個(gè)PHP文件如下。
|
<?php |
分享:《PHP設(shè)計(jì)模式介紹》第十八章 結(jié)論我們已經(jīng)一起進(jìn)行到這次討論旅程的最后一個(gè)部分了。希望我們一起完成了對(duì)你有用的東西,包括了通過(guò)PHP的一些例子來(lái)介紹設(shè)計(jì)模式的概念和更有用的成果,比如測(cè)試驅(qū)動(dòng)開(kāi)發(fā)這樣的更好的開(kāi)發(fā)技術(shù)。
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP教程之一個(gè)頁(yè)面執(zhí)行時(shí)間類
- PHP與正則表達(dá)系列之一: PHP中的正則表達(dá)式
- PHP程序字符串處理函數(shù)
- PHP實(shí)例:PHP取GB2312編碼字符串首字母的方法
- 作為PHP程序員應(yīng)該了解MongoDB的五件事
- PHP批量生成隨機(jī)用戶名
- PHP編程之--PHP的拼寫(xiě)檢查函數(shù)庫(kù)
- 淺析PHP實(shí)現(xiàn)同步遠(yuǎn)程Mysql
- PHP實(shí)現(xiàn)上傳文件生成小圖加文字的實(shí)例
- 學(xué)習(xí)動(dòng)態(tài)網(wǎng)頁(yè)制作PHP技術(shù)的正則表達(dá)式
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索通過(guò)PHP MYSQL實(shí)現(xiàn) 網(wǎng)站在線人數(shù)統(tǒng)計(jì)
- 教程說(shuō)明:
PHP教程-通過(guò)PHP MYSQL實(shí)現(xiàn) 網(wǎng)站在線人數(shù)統(tǒng)計(jì)
。