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

  PHP实例教程:网站在线XX的程序代码,后台有MYSQL数据库支持。可以直接统计出网站当前的在线XX。首先是创建MYSQL数据库表。
  CREATE
  TABLE表名(
  字段类型(max_length)DEFAULT'default_value'(NOT)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
  NULL
  }可以使用的SQL语句。),KEY file(file));下面我们开始使用PHP脚本,首先定义MYSQL的信息。$server="localhost";//你的服务器$db_user="root";//你的mysql的用户名$db_pass="password";//你的mysql的密码$database="users";//表的名字设置统计的时间(多少秒内在线QQ)$timeoutseconds=300;获取当前时间。$timestamp=time();上面的完整代码:<?php$server="localhost";//你的服务器$db_user="root";//你的mysql数据库用户名$db_pass="password";//你的mysql数据库密码(如果有的话)$database="users";//数据库名称$timeoutseconds=300;//超时秒数限制//获取当前时间$timestamp=time();//计算允许的最低时间戳$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");同样给出删除记录错误的处理。!($delete)){print"用户在线删除失败>";}下面我们显示数据库中有多少个不同的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个用户在线\n");}else{print("$user用户在线\n");}最终把上面的代码写成一个PHP文件如下。<?php
  //将您的基本服务器信息放在这里
  $server="localhost";//通常是本地主机
  $db_user="root";//你的MySQL数据库用户名
  $db_pass="password";//你的MySQL数据库密码
  $database="users";
  $超时秒=300;//它将删除所有在$timieoutseconds时间内未刷新的人员(因此可能处于离线或不活动状态)(因此它实际上检查在最后//$timeoutseconds秒
  内处于活动状态的人员)//这就是位置PHP获取时间$timestamp=time();//计算超时时间,所有在该时间戳之前在线的人都将被删除$timeout=$timestamp-$timeoutseconds;//连接数据库mysql_connect($server,$db_user);//将用户的时间戳添加到在线列表$insert=mysql_db_query($database,"INSERT INTO useronline VALUES('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");if(!($insert)){print"用户在线插入失败>";}//删除在过去$timeoutseconds秒内没有在线/活跃的人。$delete=mysql_db_query($database,"从useronline删除,其中时间戳<$timeout");if(!($delete)){print"用户在线删除失败>";}//选择此页面上在线的人数,所有唯一的在线人数$result=mysql_db_query($database,"SELECT DISTINCT ip FROM useronline WHERE file='".$_SERVER['PHP_SELF']."'");if(!($result)){print"用户在线选择错误>";}//统计行数=在线人数$user=mysql_num_rows($result);//吐出结果mysql_close();if($user==1){print("1个用户在线\n");}else{print("$user用户在线\n");}?>