1

我的页面 URL 包含 3 个变量:id=N、num=N 和 item=N;N = 1, 100。它们是整数,并给出了 URL 的示例:

page.php?id=1&num=24&item=12

我想计算没有重复的访问。我认为它应该如何工作:

如果 cookie 存在,则不要向数据库添加新值,否则在数据库中设置 cookie 和增量值。

我使用了一个 $_COOKIE[''] 数组来识别是否访问了页面:

$_COOKIE['product[id]'] = $_GET['id'];
$_COOKIE['product[num]'] = $_GET['num'];
$_COOKIE['product[item]'] = $_GET['item'];

当路径不同时出现问题:

page.php?id=1&num=24&item=12&page=0#topView

每次一个人访问该页面时,我都无法查询数据库,这是因为有 1000 次以上的唯一访问。

我的问题是:我如何计算每个页面访问的 mod 唯一性?

笔记:

page.php?id=1&num=24&item=12

或者

page.php?id=1&num=24&item=15

或者

page.php?id=2&num=24&item=12

这些链接为我提供了独特的产品信息,具体取决于变量。

谢谢!

4

1 回答 1

0

由于我的评论是您问题的解决方案,因此我将其转换为 aswer。

“我无法每次有人访问该页面时都查询数据库,这是因为有 1000 多个唯一访问。” - 我怀疑你可以。在我看来 - 你应该。统计所有页面访问次数,当您想要获取最终结果时,按 ip、id、num、item 进行分组。将所有数据放入数据库还可以让您简要了解最受欢迎的页面。更进一步,您将能够查看一个唯一用户更多次访问哪些页面并找出原因。数据越多越好。它不会占用您的数据库太多。

你最终决定的算法有一个错误。想象一下 id 是 11,num 是 5,item 是 7。另一个 id = 1,num = 15,item = 7。希望你明白我的意思。:P 这样说

md5($_GET['id'].'-'.$_GET['num'].'-'.$_GET['item']);

所以它真的很独特。

于 2012-05-03T16:11:44.557 回答