写一个用户在线显示的程序
程序 一个 用户 显示 在线
2023-06-13 09:13:43 时间
在开始这篇文章时,作者假设读者已能够写出一个用户的登入认证程序.
----------------------------------------------------------
记数器可完成访问web页的总次数,但却不能得知一个时段中访问量的动态记载,下面就来介绍如何写一个各个时段动态显示访问量的方法.
要记载访问量,首先就要在mysql内建立一个数据库,姑且给这个数据库取名为line,同时建立一个名为line的数据表,表内的字段分别为"用户名(namevarchar(20)),时间(timedatetime)".当然读者也可根据需要增加数据表的字段.
建立好数据库后,就可以开始设计程序了,现在先理清一下思路,要想显示访问量,当然数据库就必须要有记录,我已假设读者有能力写一个用户登入程序了,所以向数据库添加纪录可在登入程序假设为login.php里添加:
先给现在时间付值:$time=date("Y-m-dH:i:s");
mysql_select_db(line);
mysql_query("insertintoline(name,time)values("$name","$time")");
好了,现在每一位登入的用户在数据库里都有了一个记录,下面就来完成用户在线显示的程序line.php:
<?
mysql_connect("local","","");
mysql_select_db(line);
$result=mysql_query("select*fromline");
$num=mysql_numrows($result);
if(!empty($num)){
echo"<table><tr><td>";
echo"现在在线人数为:$num";
echo"</td></tr>";
for($i=0;$i<$num;$i++){
$name=mysql_result($result,$i,"name");
echo"<tr><td>用户:$name</td></tr>";
}
}
?>
上面这段程序已能显示所有在线的用户人数及各用户名,当然这个程序还很不完善.如果其中一个用户登出离开后,数据库就不应该有此用户的记录所以,还得在登出程序假设为logout.php内加上删除功能:
mysql_select_db(line);
mysql_query("deletefromlinewherename="$name"");
这时一个基本的用户在线功能已经完成,接下来继续在line.php内增加代码使功能更加完善,首先我们得规定用户在多长时间没继续浏览line.php时就认为该用户已经离开,这里给定一个时间限制为5分钟,也就是说程序将显示从现在开始的前5分钟的用户情况,所以必须line.php内设置一个现在时间告知程序从这个时间开始执行,然后实现程序执行时把数据库内记录的时间减去现在时间大于5分钟的所有记录删除,这样任何用户在执行line.php时,都能看到5分钟内的所有在线的用户,完成这个功能需要以下这个数据库语句:
deletefromlinewheretime<date_sub("$time",interval5
minute)
但是其中还有一个问题就是如果有个用户一直在不停地执行line.php超过5分钟以上时,程序必须得分辨出该用户并一直显示该用户,在这就得利用cookie来实现更新数据库的时间记录了,因为是登入认证的,所以会有个cookie来记住用户的资料的,假设这个记录用户姓名的cookie变量为$cookiename(具体的变量视cookie的设置而定),剩下的就很好办了,利用这个cookie变量完成数据库的修改:
updatelinesettime="$time"wherename="$cookiename"
下面来完善line.php:
<?
//设置现在的时间
$time=date("Y-m-dH:i:s");
mysql_connect("local","","");
mysql_select_db(line);
//更新用户的记录
mysql_query("updatelinesettime="$time"wherename="$cookiename"");
//删除超过5分钟的用户记录
mysql_query("deletefromlinewheretime<date_sub("$time",interval5minute)");
$result=mysql_query("select*fromline");
$num=mysql_numrows($result);
if(!empty($num)){
echo"<table><tr><td>";
echo"现在在线人数为:$num";
echo"</td></tr>";
for($i=0;$i<$num;$i++){
$name=mysql_result($result,$i,"name");
echo"<tr><td>用户:$name</td></tr>";
}
}
?>
好用户在线显示功能完成.
----------------------------------------------------------
记数器可完成访问web页的总次数,但却不能得知一个时段中访问量的动态记载,下面就来介绍如何写一个各个时段动态显示访问量的方法.
要记载访问量,首先就要在mysql内建立一个数据库,姑且给这个数据库取名为line,同时建立一个名为line的数据表,表内的字段分别为"用户名(namevarchar(20)),时间(timedatetime)".当然读者也可根据需要增加数据表的字段.
建立好数据库后,就可以开始设计程序了,现在先理清一下思路,要想显示访问量,当然数据库就必须要有记录,我已假设读者有能力写一个用户登入程序了,所以向数据库添加纪录可在登入程序假设为login.php里添加:
先给现在时间付值:$time=date("Y-m-dH:i:s");
mysql_select_db(line);
mysql_query("insertintoline(name,time)values("$name","$time")");
好了,现在每一位登入的用户在数据库里都有了一个记录,下面就来完成用户在线显示的程序line.php:
<?
mysql_connect("local","","");
mysql_select_db(line);
$result=mysql_query("select*fromline");
$num=mysql_numrows($result);
if(!empty($num)){
echo"<table><tr><td>";
echo"现在在线人数为:$num";
echo"</td></tr>";
for($i=0;$i<$num;$i++){
$name=mysql_result($result,$i,"name");
echo"<tr><td>用户:$name</td></tr>";
}
}
?>
上面这段程序已能显示所有在线的用户人数及各用户名,当然这个程序还很不完善.如果其中一个用户登出离开后,数据库就不应该有此用户的记录所以,还得在登出程序假设为logout.php内加上删除功能:
mysql_select_db(line);
mysql_query("deletefromlinewherename="$name"");
这时一个基本的用户在线功能已经完成,接下来继续在line.php内增加代码使功能更加完善,首先我们得规定用户在多长时间没继续浏览line.php时就认为该用户已经离开,这里给定一个时间限制为5分钟,也就是说程序将显示从现在开始的前5分钟的用户情况,所以必须line.php内设置一个现在时间告知程序从这个时间开始执行,然后实现程序执行时把数据库内记录的时间减去现在时间大于5分钟的所有记录删除,这样任何用户在执行line.php时,都能看到5分钟内的所有在线的用户,完成这个功能需要以下这个数据库语句:
deletefromlinewheretime<date_sub("$time",interval5
minute)
但是其中还有一个问题就是如果有个用户一直在不停地执行line.php超过5分钟以上时,程序必须得分辨出该用户并一直显示该用户,在这就得利用cookie来实现更新数据库的时间记录了,因为是登入认证的,所以会有个cookie来记住用户的资料的,假设这个记录用户姓名的cookie变量为$cookiename(具体的变量视cookie的设置而定),剩下的就很好办了,利用这个cookie变量完成数据库的修改:
updatelinesettime="$time"wherename="$cookiename"
下面来完善line.php:
<?
//设置现在的时间
$time=date("Y-m-dH:i:s");
mysql_connect("local","","");
mysql_select_db(line);
//更新用户的记录
mysql_query("updatelinesettime="$time"wherename="$cookiename"");
//删除超过5分钟的用户记录
mysql_query("deletefromlinewheretime<date_sub("$time",interval5minute)");
$result=mysql_query("select*fromline");
$num=mysql_numrows($result);
if(!empty($num)){
echo"<table><tr><td>";
echo"现在在线人数为:$num";
echo"</td></tr>";
for($i=0;$i<$num;$i++){
$name=mysql_result($result,$i,"name");
echo"<tr><td>用户:$name</td></tr>";
}
}
?>
好用户在线显示功能完成.
相关文章
- SpringBoot集成Spring Security(1)——入门程序
- C语言 | 编写一个简单的定时关机程序「建议收藏」
- 用.NET设计一个假装黑客的屏幕保护程序
- 【说站】恋爱星座配对微信小程序源码
- 【说站】10月最新版人人商城DIY版小程序源码前端+后端+数据库
- 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。
- C语言编写一个程序,输入10个整数,统计并输出其中正数,负数和零的个数。
- 写一个Loader引导加载程序
- 测试平台分支-小程序端-2-第一个接口(下)地址导航
- 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序
- 利用ICMPv4协议实现一个ping程序
- 关机程序
- 「 『Java』注释与helloworld程序的解释 」
- 【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )
- [linux] /sbin/nologin的用户运行程序详解程序员
- 一个Java实现的简单的多个客户端聊天程序详解编程语言
- 健康状态【检测Oracle监听程序健康状况】(oracle监听程序当前)
- 程序Linux下运行C程序的指南(linux运行cpp)
- include指令:将另一个文件的内容被插入到程序中
- 探究Linux引导程序如何实现计算机启动(linux引导程序)
- 类型使用MSSQL数组类型来改进程序(mssql数组)
- 用一个开源工具实现多线程 Python 程序的可视化
- 我们做了一个极简的文章列表小程序
- 做一个这样的程序要多少钱?比如像谷歌搜索那么简单的
- Balsa 是一个GNOME环境下优秀的邮件程序。在很长的一段时间里,GNOME特有的邮件客户软件似乎并没有多大的完善和改进。虽然Balsa被誉为GNOME正式的mailer,但也有很多其他这方面的产品获得了不同程度的成功。虽然个别产品也有不尽人意之处,但其中也不乏闪光点。
- 从C程序使用MySQL语句开启数据库之路(c use mysql)
- 程序解决Oracle中多个监听程序带来的问题(oracle出现多个监听)
- MySQL解析为什么说MySQL不只是一个程序(mysql不是程序吗)
- 一个显示天气预报的程序
- 一个简单的域名注册情况查询程序
- C#将dll打包到程序中的具体实现
- Ruby实现邮件主动推送触发程序
- VC++基于Dx实现的截图程序示例代码