【转】 (原创)用PHP和MySQL编一个网页计数器


【转】 (原创)用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
  
  如果看后依然找不到路子,可以给我发邮件[email protected].
  注,本来我想把我做的文件都上传到自己的网站上,但是那个免费的Web Hosting 不支持上传文件,所以只好作罢了,不过大家可以访问我的个人网站,看看左上角的网页计数器是如何工作的。哈哈。

猜你喜欢

转载自sit379vt.iteye.com/blog/1359516