使用AJAX进行页面点击计数器 - 如何处理同一用户的多次访问?

时间:2013-08-24 15:52:08

标签: php javascript ajax session hitcounter

我创建了简单的点击计数器,它发送ajax请求以确定访问者查看页面的时间。

在JS中,我每隔几秒就会点击一次PHP文件:

var ajaxreq = new XMLHttpRequest();
ajaxreq.open("GET", "visitlogger.php", true); 
ajaxreq.send();

PHP文件(visitlogger.php)将数据存储在MySQL数据库中。 - 存储“第一次打击时间戳” - 存储HTTP_REFERER,用户代理,IP等。 - 如果存在会话ID,则更新“最后命中时间戳”(以检查用户打开页面的时间)

现在我需要一些cookie或其他东西来组织独特访问者的访问。

怎么做?

1 个答案:

答案 0 :(得分:0)

我要做的是保存两个cookie,第一个会有很小的过期时间和其他长时间说4-6个月,如果设置了第二个cookie,你知道他不是一个独特的访问者,但仍有缺点:

1)如果禁用了cookie?

2)如果cookie被清除了?

编辑代码:

  if (!isset($_COOKIE["visit_id"])) { //short cookie

    //log in db

    setcookie("visit_id", session_id(), time()+60*60*1, "/"); //set cookie for a day 

  } 


  if (!isset($_COOKIE["visit_long"])) { //long cookie

    //log in db


    setcookie("visit_long", session_id(), time()+60*60*24*30*6, "/"); //set cookie long for 6 months

  } else {

    if (!isset($_COOKIE["visit_id"])) {

    //not a unique visitor


    setcookie("visit_id", session_id(), time()+60*60*1, "/"); //set cookie for one day

   }

 }