php程序展示,写一个用户在线显示的程序

写一个用户在线显示的程序

更新时间:2006年10月09日 00:00:00   作者:

在开始这篇文章时,作者假设读者已能够写出一个用户的登入认证程序.

----------------------------------------------------------

记数器可完成访问 web 页的总次数,但却不能得知一个时段中访问量的动态记载,下面就来介绍如何写一个各个时段动态显示访问量的方法.

要记载访问量,首先就要在 mysql 内建立一个数据库,姑且给这个数据库取名为 line,同时建立一个名为 line 的数据表,表内的字段分别为"用户名(name varchar(20)),时间(time datetime)".当然读者也可根据需要增加数据表的字段.

建立好数据库后,就可以开始设计程序了,现在先理清一下思路,要想显示访问量,当然数据库就必须要有记录,我已假设读者有能力写一个用户登入程序了,所以向数据库添加纪录可在登入程序假设为 login.php 里添加:

先给现在时间付值:$time=date('Y-m-d H:i:s');

mysql_select_db(line);

mysql_query("insert into line (name,time) values('$name','$time')");

好了,现在每一位登入的用户在数据库里都有了一个记录,下面就来完成用户在线显示的程序 line.php:

mysql_connect("local","","");

mysql_select_db(line);

$result=mysql_query("select * from line");

$num=mysql_numrows($result);

if (!empty($num)) {

echo "

";

echo "现在在线人数为:$num";

echo "

for($i=0;$i

$name=mysql_result($result,$i,"name");

echo "

用户:$name";

}

}

?>

上面这段程序已能显示所有在线的用户人数及各用户名,当然这个程序还很不完善.如果其中一个用户登出离开后,数据库就不应该有此用户的记录所以,还得在登出程序假设为 logout.php 内加上删除功能:

mysql_select_db(line);

mysql_query("delete from line where name='$name'");

这时一个基本的用户在线功能已经完成,接下来继续在 line.php 内增加代码使功能更加完善,首先我们得规定用户在多长时间没继续浏览 line.php 时就认为该用户已经离开,这里给定一个时间限制为 5 分钟,也就是说程序将显示从现在开始的前 5 分钟的用户情况,所以必须 line.php 内设置一个现在时间告知程序从这个时间开始执行,然后实现程序执行时把数据库内记录的时间减去现在时间大于 5 分钟的所有记录删除,这样任何用户在执行 line.php 时,都能看到 5 分钟内的所有在线的用户,完成这个功能需要以下这个数据库语句:

delete from line where time

minute)

但是其中还有一个问题就是如果有个用户一直在不停地执行 line.php 超过 5 分钟以上时,程序必须得分辨出该用户并一直显示该用户,在这就得利用 cookie 来实现更新数据库的时间记录了,因为是登入认证的,所以会有个 cookie 来记住用户的资料的,假设这个记录用户姓名的 cookie 变量为 $cookiename (具体的变量视 cookie 的设置而定),剩下的就很好办了,利用这个 cookie 变量完成数据库的修改:

update line set time='$time' where name='$cookiename'

下面来完善 line.php:

//设置现在的时间

$time=date('Y-m-d H:i:s');

mysql_connect("local","","");

mysql_select_db(line);

//更新用户的记录

mysql_query("update line set time='$time' where name='$cookiename'");

//删除超过 5 分钟的用户记录

mysql_query("delete from line where time

$result=mysql_query("select * from line");

$num=mysql_numrows($result);

if (!empty($num)) {

echo "

";

echo "现在在线人数为:$num";

echo "

for($i=0;$i

$name=mysql_result($result,$i,"name");

echo "

用户:$name";

}

}

?>

好用户在线显示功能完成.

相关文章

1a1b05c64693fbf380aa1344a7812747.png

其实这些内容在php手册就可以学习的 但是很多php入门初学者对php手册不知道怎么看 看也看不懂2012-08-08

4f55910a645b073bc4fc65dc10dc14bd.png

我们经常使用strstr函数用来判断某个字符串中是否包含了制定字符串,如果未找到所搜索的字符串,则返回 false,有责返回从匹配点开始的字符串2013-09-09

0ea3c7666119d5615e582f823fb3fad6.png

使用PHP制作新闻系统的思路...2006-10-10

4f96a78db829b1556ff16de21e013c7a.png

利用php来自动调用不同服务器上的flash...2006-10-10

8cc1031babc6aff2319f1c6af8544aa0.png

Laravel是一个简单优雅的PHP Web开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单、高雅、表达式语法开发出很棒的Web应用,那下面跟着小编一起来学习laravel中的存取器吧。2016-07-07

0c932a99bb7b6f23c937db507070cc7b.png

作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发。今天来记录下laravel入门需要熟悉的知识点2020-09-09

cca732bf65a93ed2ec0ac80c638460fe.png

Banner程序...2006-10-10

2d9f31f2af7b675a3d153d2b7f1035a7.png

PHP 和 HTML...2006-10-10

b452cee8ec5cd9e58ab98eba17281e59.png

建立动态的WML站点(一)...2006-10-10

f4838ec7e2d4da28e0b57d4e852dadd4.png

php上传、管理照片示例...2006-10-10

最新评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值