如何实现未注册用户的查看次数?

时间:2012-05-31 22:31:49

标签: php mysql

我已将其设置为我在名为question_views的表中记录每个视图的位置,因此每个用户只能计算一次。

但是,我有一个问题。现在当你没有登录视图时,只是不断递增,因为我没有办法识别未注册的人(或未登录的人)。

这是我在用户查看时将用户输入数据库的方式:

function add_view($user, $question) {
  $ts = time();
  $check = mysql_num_rows(mysql_query("SELECT * FROM question_views WHERE user='$user' AND question_id=$question"));
    if($check==0) {
      mysql_query("UPDATE questions SET views=views+1 WHERE qid=$question");
      mysql_query("INSERT INTO question_views (user,question_id,date) VALUES ($user,$question,$ts)");
    }
}

当用户未登录时,$_SESSION['userid'](调用该函数时传递的内容)甚至不存在。

什么是制作视图计数系统只计算一次每个观众一次的好方法,包括未注册的人?

编辑:当然没有办法可靠地做到这一点。但 是一种至少在某种程度上可以做到这一点的方法。

1 个答案:

答案 0 :(得分:3)

Corbin说得对。我个人虽然使用了cookie。 IP可以在多个人之间共享,会话只会在您关闭浏览器之前持续。我认为cookie是你最好的选择,当然,它可以被删除。只需将生命周期设置为“永久”或长时间间隔。