【问题标题】:avoid multiple views from same user using cookies避免使用 cookie 来自同一用户的多个视图
【发布时间】:2014-02-27 22:15:44
【问题描述】:
$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?据我了解,cookie 是最好的方法。提示会很有帮助...

【问题讨论】:

    标签: php mysql cookies count views


    【解决方案1】:

    可以设置cookie也可以跟踪ip:当用户点击页面时,保存ip和访问时间。如果没有经过特定的时间间隔(比如 24 小时),则不要添加计数器,否则更新时间并添加计数器。

    【讨论】:

    • ?? 1) { echo("访问次数:$visits."); }
    【解决方案2】:

    这是一种 cookie 方法,请确保在设置任何 HTML 之前进行所有 DB 查询。

    <?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 年。

    【讨论】:

    • 请注意,如果您模糊地关心您的数据,这并不是很好
    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多