您当前的位置: 首页 > 网站编程 > PHP教程 > PHP+MYSQL实例:网站在线人数的代码

PHP+MYSQL实例:网站在线人数的代码

作者:admin 来源:不详 发布时间: 2008-06-04 08:50 点击:
PHP实例教程:网站在线人数的程序代码,后台有MYSQL数据库支持。可以直接统计出网站当前的在线人数。 首先是创建MYSQL数据库表。 以下是引用片段: CREATETABLEtablename( fieldtype(max_length)DEFAULT’default_value’(NOT)NULL } 可以使用的SQL语句。 以

PHP+MYSQL实例:网站在线人数的代码

    PHP实例教程:网站在线人数的程序代码,后台有MYSQL数据库支持。可以直接统计出网站当前的在线人数。 

    首先是创建MYSQL数据库表。 

以下是引用片段: 
CREATE TABLE tablename (  
field type(max_length) DEFAULT ’default_value’ (NOT) NULL  
}  

    可以使用的SQL语句。 

以下是引用片段: 
CREATE TABLE useronline (  
timestamp int(15) DEFAULT ’0’ NOT NULL,  
ip varchar(40) NOT NULL,  
file varchar(100) NOT NULL,  
PRIMARY KEY (timestamp),  
KEY ip (ip),  
KEY file (file)  
);  

    下面我们开始使用PHP脚本,首先定义MYSQL的信息。 

以下是引用片段: 
$server = "localhost"; //你的服务器  
$db_user = "root"; //你的mysql的用户名  
$db_pass = "password"; //你的mysql的密码  
$database = "users"; //表的名字  


    设置统计的时间(多少秒内在线人数) 

以下是引用片段: 
$timeoutseconds = 300;  

    取当前时间。 

以下是引用片段: 
$timestamp = time();  

    上面的完整代码: 

以下是引用片段: 
<?php  
$server = "localhost"; //your server  
$db_user = "root"; //your mysql database username  
$db_pass = "password"; //your mysql 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 

以下是引用片段: 
 mysql_connect(’localhost’, ’username’, ’password’);  


    也允许使用变量形式。 
    以下是引用片段: 
mysql_connect($server, $db_user, $db_pass);  


    如果mysql数据库没有密码的话可以使用下面代码连接(当然建议大家一定要设置好自己的密码,这样起码黑客得要解密啊) 
    以下是引用片段: 
mysql_connect($server, $db_user);  


    查询数据库的代码: 
    以下是引用片段: 
mysql_db_query(’database’, ’query’);  


    我们只要有访客就要增加一条记录。 

以下是引用片段: 
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES  
(’$timestamp’,’".$_SERVER[’REMOTE_ADDR’]."’,’".$_SERVER[’PHP_SELF’]."’)");  

    然后我们给出如果用户用错误信息的处理方式。 

以下是引用片段: 
if(!($insert)) {  
print "Useronline Insert Failed > ";  
}  


    然后我们得实现当超过我们设置的时间我们就要删除该用户记录。 
    以下是引用片段: 
 $delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout");  


    同样给出删除记录出错的处理。 

以下是引用片段: 
if(!($delete)) {  
print "Useronline Delete Failed > ";  
}  


    下面我们显示数据库中有多少个不同的IP 

以下是引用片段: 
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file=’".$_SERVER[’PHP_SELF’]."’ ");  


    我们使用mysql_num_rows(query);来统计用户,代码如下: 
    以下是引用片段: 
$user = mysql_num_rows($result);  


    最后我们要关闭数据库。 
    以下是引用片段: 
mysql_close();  


    显示在线的人数。 

以下是引用片段: 
if($user == 1) {  
print("1 user online\n");  
} else {  
print("$user users online\n");  
}  


    最终把上面代码写成一个PHP文件如下。 

以下是引用片段: 
<?php  
//Put your basic server info here  
$server = "localhost"; //normally localhost  
$db_user = "root"; //your MySQL database username  
$db_pass = "password"; //your MySQL database password  
$database = "users";  
$timeoutseconds = 300; //it will delete all people which haven’t refreshed(so probbably are  
// offline or inactive) in $timieoutseconds time (so it actually checks the people that are active in the last  
// $timeoutseconds seconds)  
//this is where PHP gets the time  
$timestamp = time();  
//counts the timeout, all people which have been seen last online in earlier than this timestamp, will get removed  
$timeout = $timestamp-$timeoutseconds;  
//connect to database  
mysql_connect($server, $db_user);  
//add the timestamp from the user to the online list  
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES  
(’$timestamp’,’".$_SERVER[’REMOTE_ADDR’]."’,’".$_SERVER[’PHP_SELF’]."’)");  
if(!($insert)) {  
print "Useronline Insert Failed > ";  
}  
//delete the peoples which haven’t been online/active in the last $timeoutseconds seconds.  
$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout");  
if(!($delete)) {  
print "Useronline Delete Failed > ";  
}  
//select the amount of people online, all uniques, which are online on THIS page  
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file=’".$_SERVER[’PHP_SELF’]."’ ");  
if(!($result)) {  
print "Useronline Select Error > ";  
}  
//Count the number of rows = the number of people online  
$user = mysql_num_rows($result);  
//spit out the results  
mysql_close();  
if($user == 1) {  
print("1 user online\n");  
} else {  
print("$user users online\n");  
}  
?>  
分享到:
本文"PHP+MYSQL实例:网站在线人数的代码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4