嘿伙计们,我正在为客户建立一个小产品目录。我目前正试图弄清楚如何允许用户按“流行度”排序。我认为最简单/最简单的方法是在每个产品记录中加上“views”字段。
最初我没想到这个(duh)并认为我只会在调用检索特定产品的函数时向“views”计数添加一个。当然,问题在于它没有说明有人刷新页面30,000次。
最好的方法是什么? php有什么方法可以查看访问是否是唯一的?
我使用的是php / codeigniter / mysql / html / css / javascript / jquery。
答案 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,他们使用了不同的浏览器等等。你需要一个带有外键的视图表回到你想要查看的任何内容。
您可以在我的免费评分图片脚本中找到所有这类代码:
这是一个演示:
查看addImageRating.php脚本。