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
A rank users order by points
I want to make an insert from table 'rank' , with number (rank) from the cod blow, to fild users.rank ...set @rank := 0;select @rank:=@rank+1 'rank', users.username, users.points from users order by
creating a 1 to 100 in a table
hi guys I am a newb in php need some help. I have a table with 1 column and 100 rows and in each i want to do a 1-100. Can someone give me the full coding for this, please I can get it to work. I
include function being weird?
I have a very simple system to grab an IP outputted by a PHP file.. (for a project I have) but it outputs a 1 at the end!!<form method="post" action="<?php echo
i need help with php header and footer
I have designed a header and footer for my site and they seem to be ok when they are running individually ( I have a header.php and footer.php) but when I try to run then using a content page with the
Help With Showing Users On the Index Page
Ive got this code which works just how i want it to.Code: <? $timenow=time();$select = mysql_query("SELECT * FROM users WHERE online > '$timenow' ORDER by id ASC");$num =
mail() says sent but no email received
My code is quite simple:Code: <?php$to = "Ty44ler@yahoo.com";$subject = "Test mail";$message = "Hey, I just wanted to see if the script worked.";$from =
php mailer
How can i send a mail to large no, say 50,000 reciepients using [color=#0000FF]php mailer[/color]
Looking for help reading a .txt or .ini file and outputting the info.
I have a file called Info.ini and It has the following info:Code: [General]Online=0I would like it to be in a php file as just 0 if possible. Also how would I do this from php file to php file and let
Add code to enable passing of checkbox variable on login
Ok, I have a login page, but want to add a checkbox that when checked and successful login is made it passes the checkbox value (checked = "Yes" to the next page) which then loads password
Hit counter updating once per IP - IP HIT COUNTER
I have a hit counter, for the amount of views on a tutorial.It'll do the query and then do..$views = $row['views'] + 1;Then insert $views into the database.This updates the view for each refresh of