【转】 (原创)用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
今日推荐
周排行