使用cookie避免来自同一用户的多个视图

时间:2014-02-27 22:15:45

标签: php mysql cookies count views

$old_views = $row['views'];
$new_views = $old_views + 1;
$sql = "UPDATE posts SET views='".$new_views."' WHERE category_id='".$cid."' AND      
id='".$id."' LIMIT 1"; 
$res = mysql_query($sql);

每当我刷新页面$ row ['views'];继续添加。 也许跟踪用户的IP?根据我的理解,饼干是最好的方法。提示会非常有用......

2 个答案:

答案 0 :(得分:0)

您可以设置cookie或者可以跟踪IP:当用户单击该页面时,保存ip和访问时间。如果未经过特定时间间隔(比如24小时),请不要添加计数器,否则请更新时间并添加计数器。

答案 1 :(得分:0)

这是一个cookie方法,确保在设置任何HTML之前进行所有数据库查询。

<?php

if(!isset($_COOKIE['visited'])){
 $old_views = $row['views'];
 $new_views = $old_views + 1;
 $sql = "UPDATE posts SET views='".$new_views."' WHERE category_id='".$cid."' AND id='".$id."' LIMIT 1"; 
 $res = mysql_query($sql); 
 setcookie ("visited", "true", time() + 60*60*24*7*365);
?>

请注意,Cookie到期时间配置为从首次访问开始持续1年。