仓酷云

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

[学习教程] PHP网页设计若何统计在耳目数

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

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

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

x
通过这段时间的学习实践,对软件开发有了更多新的认识,不在局限于之前的片面性。当然,现在所学到的东西其实并不多,离当一个真正的程序员,还有很大的差距。   

  在服装论坛里有人问我若何统计在耳目数?我也不晓得甚么是最好的办法。上面是本站的完成的道理,我把它写出来,供人人参考。这只是我的办法,一定不是最好的,还但愿高手们予以斧正。
  其实,要真正统计同时在并发在线的人数,是一件不太实际的事,这是由于HTTP协定是种无形态的协定。当客户端向办事器收回一个恳求时,办事器会即刻创立一个新的TCP/IP毗连,在该会话停止后,如页面完整载入后,这个毗连就封闭了。普通来讲,在耳目数指的定是在必定工夫段内同时会见站点的人数,而不是基 于HTTP协定的并发毗连数。
  让咱们先来看看一个访客是若何会见一个网站的。他在阅读器的地址栏里输出了方针网站的地址,然后在一段工夫内延续阅读该网站的网页,最初,封闭阅读器或输出新的网址――阅读停止了。关于办事器端来讲,访客到来是可以晓得的,访客在阅读页面也是可以晓得的,可是怎样晓得甚么时分走的呢?因为HTTP协定是无形态的,所以没法晓得。凡是的做法是记下访客最初一次阅读站点页面的工夫。假如该访客在一个特定的工夫内没有新的举措,那末可以以为他走了。
  依据下面的这个思绪,我感觉最好用数据库,由于数据库要比其他办法如文本文件的效力要高。上面的例子是利用MySQL的,很轻易利用其他类型的数据库体系。然后,在一切的页面中挪用这个PHP文件,一方面更新数据,另外一方面可以显示在线的人数。然而,有一个成绩--究竟在多长工夫内会见的人算是并发的呢?普通来讲,是半个小时,也就是1800秒,详细的要依据网站的情形来肯定。这个工夫越长,统计出的并发在线的人数就越多。本站的是15分钟,900 秒。用会见者的IP地址暗示一个会见者是个不错的办法。在拨号上彀的情形下,被分派了不异IP地址的两个用户在短工夫内阅读统一个网站的几率是很小的。
  起首,用MySQL的东西建一个表:
CREATE TABLE ccol(
id integer not null auto_increment, #纪录的ID
ip char(15) not null, #会见者的IP地址
dtstamp datetime not null, #最初会见工夫
uri char(255), #会见者恳求的URI
primary key (id)
);

  然后,写一段PHP代码:

<?
/*
文件:ccol.php - ConCurrent OnLine statistics
目标:统计同时在线阅读的人数
作者:Hunte, hunte@phpuser.com
修正:2000-4-25
*/
$duration=1800;
require "db.php";
//包括DBSQL,概况可以参考我的另外一篇文章
$ccol=new dbSQL;
$ccol->connect();
$ccol->query("DELETE FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))>$duration");//删除超越半小时的纪录
$ccol->query("SELECT * FROM ccol WHERE ip='$REMOTE_ADDR'");
//判别以后的IP是不是在该表中存在
if ($ccol->nf())//有?
{
$ccol->next_record();//下移找到的纪录数组的指针
$id=$ccol->f('id');
$ccol->query("UPDATE ccol SET dtstamp=now(), uri='$REQUEST_URI' WHERE id=$id");
//设置最初会见工夫和会见页面
}
else//没有
{
$ccol->query("INSERT INTO ccol VALUES (0, '$REMOTE_ADDR', now(), '$REQUEST_URI')");
}
$ccol->query("SELECT COUNT(*) AS ccol FROM ccol
WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))<=$duration");
//找出在半个小时内的纪录,前面的WHERE子句无关紧要--超越工夫的已被删除
$ccol->next_record()
echo "在耳目数:", $ccol->f('ccol');
$ccol->free_result();
?>

怎样用呢?在站点的每一个页面的下面挪用这个法式,举例来讲:
--index.php
...
<!--显示在耳目数->
<?require ../stats/ccol.php3?>
...
  固然,这段代码还有改善的余地。例如,在每次挪用是都要删除半小时前的纪录,这是没有需要并且会下降效力。可以一个甚么举措过更长的工夫再做,好比6小时。人人自各儿想一想吧,我就不说了。这类办法只需稍做修正,就能够派上其余用途,如SESSION的办理、网站的会见统计剖析等。

参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。
小女巫 该用户已被删除
沙发
发表于 2015-2-4 08:24:24 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
变相怪杰 该用户已被删除
板凳
发表于 2015-2-9 20:02:29 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
活着的死人 该用户已被删除
地板
发表于 2015-2-15 23:38:03 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
admin 该用户已被删除
5#
发表于 2015-3-3 19:44:31 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
兰色精灵 该用户已被删除
6#
发表于 2015-3-7 23:33:25 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
只想知道 该用户已被删除
7#
 楼主| 发表于 2015-3-11 21:21:20 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
透明 该用户已被删除
8#
发表于 2015-3-15 00:06:45 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
深爱那片海 该用户已被删除
9#
发表于 2015-3-17 18:21:38 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
若相依 该用户已被删除
10#
发表于 2015-3-18 00:21:26 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
愤怒的大鸟 该用户已被删除
11#
发表于 2015-3-24 14:55:27 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
爱飞 该用户已被删除
12#
发表于 2015-3-26 07:23:49 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
乐观 该用户已被删除
13#
发表于 2015-4-4 12:21:06 | 只看该作者
做为1门年轻的语言,php一直很努力。
柔情似水 该用户已被删除
14#
发表于 2015-4-21 21:10:42 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
15#
发表于 2015-4-22 12:02:09 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
第二个灵魂 该用户已被删除
16#
发表于 2015-4-22 20:52:23 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
飘灵儿 该用户已被删除
17#
发表于 2015-4-25 01:54:45 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
若天明 该用户已被删除
18#
发表于 2015-5-12 02:51:49 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
灵魂腐蚀 该用户已被删除
19#
发表于 2015-6-4 01:44:22 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
不帅 该用户已被删除
20#
发表于 2015-6-7 17:05:24 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-13 16:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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