PHP统计同时在线人数
<?
/*
统计同时在线人数
创建统计表的SQL脚本如下:
CREATE TABLE IF NOT EXISTS `onlineuser` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`ip` char(15) NOT NULL,
`addtime` datetime NOT NULL,
`uri` char(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
引用方法:
当前在线人数<script type="text/javascript" src="onlineuser.php"></script>人
*/
// 数据库连接参数
define("MYSQL_SERVER",""); // mysql服务器
define("MYSQL_USER",""); // mysql用户名
define("MYSQL_PASS",""); // mysql密码
define("MYSQL_DB",""); // mysql数据库
// 连接mysql数据库
$conn=0;
$conn = mysql_connect(MYSQL_SERVER,MYSQL_USER,MYSQL_PASS);
if (!$conn)
{
die("不能打开数据库连接,错误: " . mysql_error());
}
// 选择数据库
mysql_select_db(MYSQL_DB, $conn);
// 设置mysql数据库输出数据的字符集
mysql_query("set names gbk");
$time_out=1800;
// 删除超时记录
mysql_query("DELETE FROM onlineuser WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(addtime))>$time_out",$conn);
//判断当前的IP是否在该表中存在
$result=mysql_query("SELECT * FROM onlineuser WHERE ip=$REMOTE_ADDR",$conn);
if ($result && $row=mysql_fetch_array($result)) // 存在
{
$id=$row[id];
//设置最后访问时间和访问页面
mysql_query("UPDATE onlineuser SET addtime=now(), uri=$REQUEST_URI WHERE id=$id",$conn);
}
else // 没有,则添加
{
mysql_query("INSERT INTO onlineuser VALUES (0,$REMOTE_ADDR, now(), $REQUEST_URI)",$conn);
}
// 找出(未超时)在线人数
$result=mysql_query("SELECT COUNT(*) FROM onlineuser",$conn);
if($result && $row=mysql_fetch_array($result))
echo "document.write(".$row[0].");";
else
echo "document.write(0);";
mysql_close($conn);
exit();
?>
下载源码:
File: Click to Download
[日志分享]
[日志信息]
该日志于 2010-01-30 13:38 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “PHP统计同时在线人数” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!! (尊重他人劳动,你我共同努力)
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢