Strange cookie problem. setcookie dependant on where user was directed from?
         
               Posted on 
16th Feb 2014 07:03 pm by  
admin
        
        Hello,
I have a website that sets a cookie when a user visits the website. The cookie holds an ID number that I have decided to refer to Computer Identification Number (CIN) that is unique for every user. The idea is to be able to identify a computer with the CIN even if the IP changes.
This is the code I use. What it does is that it first checks whether a visitor is an admin. Every admin pc has the admin cookie called 'admin'. If the user is not an admin, the script checks if cookies of the user is enabled and reloads the page to check. If cookies are on, it checks if the user has been here before, by checking if cookie called tp_visitor is set, if it isnt, the script sets a new tp_visitor. The tp_visitor contains the unique ID number {CIN} ). Each visit, the script writes to a database and logs the CIN, IP and timestamp:
Code: <?php
$connection = connect(); //CONNECTS TO MYSQL
if (empty($_COOKIE['admin']) ) { //COMPUTERS WITH COOKIE: 'ADMIN' ARE ADMINS, AND SHOULD NOT BE COUNTED       
   if (isset($_SERVER['HTTP_REFERER'])) {
      $ref = $_SERVER['HTTP_REFERER'];   
   }
   // CHECKS IF USER HAS COOKIE BY FIRST SETTING ONE THEN RELOADING THE SAME PAGE TO CHECK IF THE COOKIE WAS SET
   if ( ! isset( $_GET['entry'] ) ) { 
      setcookie('enabled', 'test', (time() + (60*60*24*365*5)));
      header('location: ' . $_SERVER['PHP_SELF'] . '?entry=1&' . SID);
   }
   else {
      //IF COOKIE WAS SET
      if (!empty($_COOKIE['enabled'])) { 
            //IF COOKIE TP_VISITOR IS NOT SET (THE USER IS HERE FOR THE FIRST TIME)
         if ( !isset( $_COOKIE['tp_visitor'] ) ) {
            $new_cin = 'SELECT COUNT(*) FROM kingoslo.cin';
            $resultat = mysql_query($new_cin, $connection);
            $new_cin = mysql_result($resultat,0);
            $new_cin = $new_cin + 1;
            setcookie('tp_visitor', $new_cin, (time() +(60*60*24*365*5)) );
            $cookie = 'INSERT INTO kingoslo.cinlog (cin, tid, ip, referanse) VALUES ("' . $new_cin . '", "' . time() . '", "' . getenv("REMOTE_ADDR") . '", "' . $ref . '")';
            $new_cin = 'INSERT INTO kingoslo.cin (cin, visits, epost) VALUES ("' . $new_cin . '", 0, 0)';
            mysql_query($cookie, $connection);
            mysql_query($new_cin, $connection);
         }
            //IF COOKIE TP_VISITOR IS SET (THE USER IS NOT HERE FOR THE FIRST TIME)
         else {
            $no_cookie = 'INSERT INTO kingoslo.cinlog (cin, tid, ip, referanse) VALUES ("' . $_COOKIE['tp_visitor'] . '", "' . time() . '", "' . getenv("REMOTE_ADDR") . '", "' . $ref . '")';
            mysql_query($no_cookie, $connection);
            setcookie('tp_visitor', $_COOKIE['tp_visitor'], (time() +(60*60*24*365*5)) );
         }
      }
      else { //IF COOKIES WAS DISABLED
         $no_cookie = 'INSERT INTO kingoslo.cinlog (cin, tid, ip, referanse) VALUES ("COOKIE_DISABLED", "' . time() . '", "' . getenv("REMOTE_ADDR") . '", "' . $ref . '")';
         mysql_query($no_cookie, $connection);
      }
   }
}
close($connection); //CLOSES CONNECTION
?>
Now what is the problem?
Well it seems that when I visit this script, it will sometimes create a new CIN and cookie called tp_visitor even if the user has been on the website before! This seems to happen more frequently when I am directed from different sources, i.e. if I am first directed from a link on Google, then type in the URL of the website in the next attempt.
I was wondering what this may be the result of. I think it is very strange  
Thanks       
      
       
		No comments posted yet	
	Your Answer:
	        Login to answer
        
115   46
 46  
 
    
    
 
Other forums
Pls help with PHP 
Pls can anyone direct me on how to create a user account for a customer. For example i want know if 
Revoking alter any table from a schema 
Hi All,
i am working in Oracle 10g.
my requirement is to revoke all kind of DDL oper
 SCO Unix  
I know this might not be the place to ask, but, can anyone tell me if SCO Unix comes with PHP built 
JSON SORT WITH PHP 
I have two products that I want to sort by say "Id:17, value: xxx" using php
The page w
Change image filetype on upload? 
Hi,
I've got a form which uploads an image to the server.
Is it possible to change the image t
reorder sql query 
ok so i have this very simple code:
Code: $query = "SELECT search_keywords, COUNT(search_key
Displaying a record from mysql in a simple swf file 
Hi,
I have a mysql database containing information I would like to display in my swf. 
problem in program for counting no of chars using pointers 
Hi all, I was trying to make a program which counts number of chars in a string using concpt of poin
Secure FTP 
Hi experts,
There is no SFTP action in MII workbench.
This means it needs developing custo
comparing tables across databases sql refinement ideas required 
Hi all
Via pl/sql I need to ensure that data between tables in different databases match