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

在开班这篇小说时,我假如读者已可以写出三个客户的登陆认证程序.

记数器可成功访谈 web
页的总次数,但却不可能搜查缴获叁个时节中访问量的动态记载,下边就来介绍怎么样写二个顺序时段动态显示访谈量的方法.
要记载访谈量,首先就要在 mysql 内成立一个数据库,姑且给这几个数据库取名为line,同一时候创设多少个名称叫 line 的数据表,表内的字段分别为客商名(name
varchar(20卡塔尔(قطر‎卡塔尔(قطر‎,时间(time datetimeState of Qatar.当然读者也可遵照须求扩大数据表的字段.
创设好数据库后,就足以起来筹算程序了,未来先理清一下思路,要想体现访问量,当然数据库就一定要要有记录,小编已假如读者有技能写叁个客商登陆程序了,所以向数据库增添纪录可在登录程序一旦为
login.php 里拉长: 先给前日时间付值:$time=date(‘Y-m-d H:i:s’卡塔尔;
mysql_select_db(line); mysql_query(insert into line (name,time卡塔尔(قطر‎values(‘$name’,’$time’卡塔尔国卡塔尔国;
好了,以后每一个人登陆的客商在数据Curry皆有了二个笔录,上边就来形成顾客在线突显的主次
line.php: ? mysql_connect(local,,); mysql_select_db(line);
$result=mysql_query(select * from line); $num=mysql_numrows($result);
if (!empty($numState of QatarState of Qatar { echo tabletrtd; echo 今后在眼线数为:$num; echo
/td/tr; for($i=0;$i$num;$i++卡塔尔(قطر‎{ $name=mysql_result($result,$i,name卡塔尔国;
echo trtd客商:$name/td/tr; } } ?
上边这段程序已能突显全体在线的顾客人数及各顾客名,当然那么些顺序还十分不完备.假使此中叁个客商登出离开后,数据库就不应有有此顾客的笔录所以,还得在刊登程序一旦为
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 timedate_sub(‘$time’,interval 5 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(lineState of Qatar; //更新客户的记录 mysql_query(update line set
time=’$time’ where name=’$cookiename’卡塔尔; //删除抢先 5 分钟的顾客记录
mysql_query(delete from line where timedate_sub(‘$time’,interval 5
minute)); $result=mysql_query(select * from line);
$num=mysql_numrows($result); if (!empty($num卡塔尔卡塔尔(قطر‎ { echo tabletrtd; echo
今后在窥伺者数为:$num; echo /td/tr; for($i=0;$i$num;$i++State of Qatar{
$name=mysql_result($result,$i,name卡塔尔国; echo trtd客商:$name/td/tr; } } ?
好客商在线彰显效果完成.

发表评论

电子邮件地址不会被公开。 必填项已用*标注