检查页面视图是否唯一的简便方法?

时间:2010-01-09 03:03:41

标签: php mysql database

嘿伙计们,我正在为客户建立一个小产品目录。我目前正试图弄清楚如何允许用户按“流行度”排序。我认为最简单/最简单的方法是在每个产品记录中加上“views”字段。

最初我没想到这个(duh)并认为我只会在调用检索特定产品的函数时向“views”计数添加一个。当然,问题在于它没有说明有人刷新页面30,000次。

最好的方法是什么? php有什么方法可以查看访问是否是唯一的?

我使用的是php / codeigniter / mysql / html / css / javascript / jquery。

2 个答案:

答案 0 :(得分:5)

如果客户端已经访问了会话变量中的页面,则可以存储,并运行相同的视图查询。现在,这不会阻止用户关闭浏览器,重新打开和返回,但它应该提供相当级别的保护。如果这还不够,您可以转到cookie,然后是用户注册或IP跟踪。

好的,会话方法。在您的页面上运行:

session_start();
if(!isset($_SESSION['page_views']['some_unique_string'])){
  $_SESSION['page_views']['some_unique_string'] = true;
  // update your database
}

请注意,您需要确保'some_unique_string'对于您正在跟踪观看的网页而言是唯一的。

Cookie的方法几乎相同。

答案 1 :(得分:0)

如果要确保页面视图是唯一的,则必须存储所有页面视图的远程IP。实际上没有其他可靠的方法可以知道访问者是否访问过。在他们的系统上放置一个cookie将在以后因为一百万个不同的原因而失败,他们清除了他们的cookie,他们使用了不同的浏览器等等。你需要一个带有外键的视图表回到你想要查看的任何内容。

您可以在我的免费评分图片脚本中找到所有这类代码:

http://destiney.com/php

这是一个演示:

http://ratedsite.com/

查看addImageRating.php脚本。