1

我想在我的 php 网站上显示访客总数,我发现一些 html / php 脚本显示这样的计数器

<!-- Start of SimpleHitCounter Code -->
<div align="center"><a href="http://www.simplehitcounter.com" target="_blank"><img src="http://simplehitcounter.com/hit.php?uid= " border="0" height="18" width="83" alt="web counter"></a><br><a href="http://www.simplehitcounter.com" target="_blank" style="text-decoration:none;">web counter</a></div>
<!-- End of SimpleHitCounter Code -->

我在本地主机中尝试过,问题是如果我刷新同一页面,它会继续添加以计算我如何获得每个访问者的唯一计数,请帮助我,我在搜索时找不到任何合适的来源

4

4 回答 4

1

检查您正在打开页面的IP,并利用一次命中计数器的增量来获取唯一 IP

意味着第一次如果您在命中计数器 Db 中打开一个带有您的 IP 的页面,if it is unique然后递增命中计数器并将您的 IP 存储到 DB 中。然后对于每个页面刷新,您将检查当前 IP 是否存在。如果没有然后增加,如果它忽略它。

于 2013-11-14T13:14:10.880 回答
1

这取决于什么是唯一访客。一种解决方案是检查 IP 地址,但例如,您可能有多个人在 wifi 路由器后面使用不同的计算机,如果您希望所有人都被视为唯一的,那么使用 cookie 会更好。

cookie 的另一个优点是您可以轻松跟踪重复访问者,而无需在服务器上存储 IP 地址数据库。

于 2013-11-14T13:17:47.180 回答
1

使用 table 创建一个数据库ips,并向其中添加列id, ip, lasthit。如果用户访问该网站,下面的片段将向数据库添加一个命中(一个命中/日期)

<?php
$pdo = new PDO('mysql:host=localhost;dbname=myDatabase','username','password');    $time = date("Y-m-d");
$query = "INSERT INTO ips (ip, lasthit) VALUES (?,?) WHERE lasthit <> ?";
$smt = $pdo->prepare($query);
$smt->execute(array($_SERVER['REMOTE_ADDR'],$time, $time));
于 2013-11-14T13:35:43.767 回答
0

您可以为其创建一个数据库表,列值应为 id、total_count 和 ip 地址。因此,如果您再次找到相同的 IP 地址,请不要增加计数,它会增加。

如果您想每天从一个系统增加一次计数,您可以再添加一个名为 last_hit_date 的列。使用它来验证 ip 是否已经点击了当天。

于 2013-11-14T13:12:52.957 回答