0

I created simple hit counter that sends ajax requests to determine how long visitor is viewing the page.

In JS im just hitting PHP file every few seconds:

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

PHP file (visitlogger.php) stores data in MySQL database. - stores "first hit timestamp" - stores HTTP_REFERER, user agent, IP etc. - updates "last hit timestamp" if session ID exists (to check how long user had page opened)

Now I need some cookie or something, to group visits by unique visitors.

How to do it?

4

1 回答 1

0

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

1)如果cookies被禁用?

2)如果cookies被清除?

编辑代码:

  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

   }

 }
于 2013-08-24T16:50:18.587 回答