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.

Did you know?Explore Trending and Topic pages for more stories like this.
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 Like 46 Dislike
Previous forums Next forums
Other forums

am I using this for loop correctly
Dear buddies!

Right now I am generating a report with some details for all the dealers.

Help adding strtolower( to my in_array
strtolower i need to add it to this to work, iuno how.

Code: $moderators = array('Admin', 'ba

Probably Easy, Need help with Check Boxes in PHP Code
hello,

Thanks for looking this over and helping me out. My problem is I have a online store l

question about stripslashes and real_escape_string
im cleaning up an old app that I wrote fixing some of the vulernabilities from attacks.

I hav

Consuming MII WebService in Java WebDynpro
Hello,

We are facing a strange situation...

We define a transaction in MII to

DirectoryIterator and Hacked Website
Hi Everyone.

My problem:
Some one has been sneaking in to my website hidden Iframes. I've

order by date not ID number help php
I am trying to orginize the following code to order by date not id number.
any help would be grea

CE 7.1 and External GIS integration
Hi All,

We want to develop an application on CE 7.1 which uses GIS features from an exter

Please help with SMTP Authenticated PHP Email Form
Hello, I'm creating a PHP email form, and for this particular server, I have to use SMTP Authenticat

list files from folder, only one for each date
I have many files in a folder and wish to only list one of each date

these are the file names

Sign up to write
Sign up now if you have flare of writing..
Login   |   Register
Follow Us
Indyaspeak @ Facebook Indyaspeak @ Twitter Indyaspeak @ Pinterest RSS



Play Free Quiz and Win Cash