仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1782|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之写一个用户在线显示的法式

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:06:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
可以在书上很方便地做标记,及时记下自己的心得体会。   在入手下手这篇文章时,作者假定读者已可以写出一个用户的登入认证法式.
----------------------------------------------------------
记数器可完成会见 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 "<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("delete from line where name='$name'");

这时候一个根基的用户在线功效已完成,接上去持续在 line.php 内增添代码使功效加倍完美,起首咱们得划定用户在多长工夫没持续阅读 line.php 时就以为该用户已分开,这里给定一个工夫限制为 5 分钟,也就是说法式将显示从如今入手下手的前 5 分钟的用户情形,所以必需 line.php 内设置一个如今工夫告诉法式从这个工夫入手下手履行,然后完成法式履行时把数据库内纪录的工夫减去如今工夫大于 5 分钟的一切纪录删除,如许任何用户在履行 line.php 时,都能看到 5 分钟内的一切在线的用户,完成这个功效需求以下这个数据库语句:

delete from line where time<date_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(line);

//更新用户的纪录
mysql_query("update line set time='$time' where name='$cookiename'");

//删除超越 5 分钟的用户纪录
mysql_query("delete from line where time<date_sub('$time',interval 5 minute)");

$result=mysql_query("select * from line");
$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>";
}
}
?>

好用户在线显示功效完成. 转自:静态网制造指南 www.knowsky.com虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。
老尸 该用户已被删除
沙发
发表于 2015-2-4 08:52:34 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
透明 该用户已被删除
板凳
发表于 2015-2-6 16:14:05 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-7 19:48:44 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
分手快乐 该用户已被删除
5#
发表于 2015-2-10 07:12:46 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
因胸联盟 该用户已被删除
6#
发表于 2015-3-1 01:47:42 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
柔情似水 该用户已被删除
7#
发表于 2015-3-4 14:17:35 | 只看该作者
实践是检验自己会不会的真理。
莫相离 该用户已被删除
8#
发表于 2015-3-9 06:15:46 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
若天明 该用户已被删除
9#
发表于 2015-3-17 22:21:12 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
飘灵儿 该用户已被删除
10#
发表于 2015-3-25 03:59:11 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
变相怪杰 该用户已被删除
11#
 楼主| 发表于 2015-3-28 15:21:51 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小魔女 该用户已被删除
12#
发表于 2015-4-7 12:54:56 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
13#
发表于 2015-4-28 14:44:54 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
谁可相欹 该用户已被删除
14#
发表于 2015-5-9 16:42:44 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
乐观 该用户已被删除
15#
发表于 2015-6-15 21:13:32 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
只想知道 该用户已被删除
16#
发表于 2015-6-19 22:35:50 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
海妖 该用户已被删除
17#
发表于 2015-6-23 20:46:39 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
第二个灵魂 该用户已被删除
18#
发表于 2015-6-25 01:22:41 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
爱飞 该用户已被删除
19#
发表于 2015-6-25 21:39:02 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
深爱那片海 该用户已被删除
20#
发表于 2015-7-9 18:03:16 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 01:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表