设为首页 收藏本站
查看: 686|回复: 0

[经验分享] 【转】 (原创)用PHP和MySQL编一个网页计数器

[复制链接]

尚未签到

发表于 2016-10-18 10:45:08 | 显示全部楼层 |阅读模式
【转】 (原创)用PHP和MySQL编一个网页计数器
2011年11月24日
  概要:在这篇教程中,我们将要学习如何建立一个简单的计数器程序。我们将要建立一个普通的网页浏览计数器,一个统计浏览过此网页的IP总数计数器,一个在线总人数计数器,以及正在浏览当前页面的总人数。可以说包括了所有的计数器的编程。
  Step 1: db.sql
  首先让我来写建立一个数据库,这对于我们后面的学习是很有帮助的。我们将要建立2个Table。
  第一个是stats table,用来显示网页浏览数量和唯一IP地址浏览过的数量。第二个usersonline table,用来显示在线的用户。
  如果你有兴趣看看MySQL的语法教程,可以点击这里来学习:点击学习MySQL
  代码是这样的:
  CREATE TABLE `stats` (
  `ip` varchar(15) NOT NULL default '',
  `visits` int(11) NOT NULL default '0'
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  CREATE TABLE `useronline` (
  `timestamp` int(15) NOT NULL default '0',
  `ip` varchar(40) NOT NULL default '',
  `file` varchar(100) NOT NULL default '',
  PRIMARY KEY   (`timestamp`),
  KEY `ip` (`ip`),
  KEY `file` (`file`)
  ) TYPE=MyISAM;
  把这些代码保存在db.sql的文件里面。
  Step 2: config.php
  这个文件是用来帮助存储所有的数据库连接信息的,也就是说这里存储了所有网页中想连接数据库时候公用的信息,这样我们就不必在其他的网页中每次都要定义这些语句了,每次在其他的文件中包括上这个文件就可以了。
  代码如下:
  
  Step 3: stats.php
  好,现在我们就要学习写一下目前网页的浏览数量和唯一这个IP地址的浏览数量。
  首先我们要建立网页和数据库的连接,正如我们在Step 2中定义的,所以我们只要引用那个文件就可以了。
  代码如下:
  Error。
  $count = mysql_query("SELECT * FROM $tbl_name") or die(mysql_error());
  现在我们就该计算stats Table的总行数并且存储它为 $unique(这个是纪录了不同的IP地址访问的总数)。这个基本上同我们前面的Else语句的功能差不多。如果一个用户的IP 地址已经在我们的数据库上出现过了,那么在visits field会加1;就需要在数据库里面插入访问者的IP地址到ip field,并且visits field 记为1。
  代码如下:
  $unique = mysql_num_rows($count);
  现在我们得到$visits(这个纪录了所有的访问总数)访问的总数。我们可以用一个While 循环。
  代码如下:
  while ($vi = mysql_fetch_array($count)) {
  $visits = $visits + $vi['visits'];
  }
  好了,现在我们做完了,需要把结果$visits和 $unique显示在网页上。
  代码如下:                                          
  echo "Total Hits: " . $visits . "";
  echo "Unique Hits: " . $unique;
  ?>
  Step 4: useronline.php 很多人也许会认为这样很难,但是相比前面的stats.php 文件,这个文件已经容易多了。在这个文件中,我们同要也是要获得数据库的信息,所以我们只要引用了前面的config.php 就可以了。 代码如下: MySQL Error: ".mysql_error());
  然后我们要删除掉那些超过了我们设定$timeoutseconds的用户,可能一些用户忘记关了这个网页,而导致急速增加。
  代码如下: mysql_query("delete from useronline where timestampMySQL Error: ".mysql_error()); 此时,我们便可以知道在线的所有人数了。
  代码如下:
  $result = mysql_query("select distinct ip from useronline") or die("MySQL Error: ".mysql_error());
  $user = mysql_num_rows($result);
  我们前面得到了所有在线人数,我们现在要知道目前这个网页上有多少人,我们这样做。
  代码如下:
  $resulta = mysql_query("select distinct ip from useronline where file='$PHP_SELF'") or die("MySQL Error: ".mysql_error());
  $usera = mysql_num_rows($resulta);
  mysql_close();
  最后显示所有信息。
  // Show all users online
  if ($user==1) {
  echo"Users Online: $user";
  }  
  else {
  echo"Users Online: $user";
  }
  // Show users on this very page
  if ($usera==1) {
  echo"
Viewing This Page: $user";
  }  
  else {
  echo"Viewing This Page: $user";
  }
  ?>
  Step 5: Displaying
  最后一步是非常简单了,只要用我们的Index.html或者是其他各式的Index来引用我们刚才编写的两个.php文件即可。
  代码如下:
  //Display general stats
  
  //Display online users
  
  如果看后依然找不到路子,可以给我发邮件kxw0908@gmail.com.
  注,本来我想把我做的文件都上传到自己的网站上,但是那个免费的Web Hosting 不支持上传文件,所以只好作罢了,不过大家可以访问我的个人网站,看看左上角的网页计数器是如何工作的。哈哈。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287891-1-1.html 上篇帖子: PHP开发者常犯的10个MySQL错误(转自csdn) 下篇帖子: 服务器端(Tomcat+MySQL)和客户端数据操作(简单)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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