$ip_address = $_SERVER["REMOTE_ADDR"];
$page_name = $_SERVER["SCRIPT_NAME"];
$query_string = $_SERVER["QUERY_STRING"];
$current_page = $page_name."?".$query_string;
/** @var PDO $db */
if(isset($_SESSION["tracking"])){
//update the visitor log in the database, based on the current visitor
//id held in $_SESSION["visitor_id"]
$visitor_id = isset($_SESSION["visitor_id"])?$_SESSION["visitor_id"]:0;
if($_SESSION["current_page"] != $current_page)
{
$sql = "INSERT INTO visitor_tracking
(ip_address, page_name, query_string, visitor_id)
VALUES ('$ip_address', '$page_name', '$query_string', '$visitor_id')";
$f = $db->prepare($sql);
$f ->execute();
$_SESSION["current_page"] = $current_page;
}
} else {
//set a session variable so we know that this visitor is being tracked
//insert a new row into the database for this person
$sql = "INSERT INTO visitor_tracking
(ip_address, page_name, query_string)
VALUES ('$ip_address', '$page_name', '$query_string')";
$f = $db->prepare($sql);
$f ->execute();
//find the next available visitor_id for the database
//to assign to this person
$_SESSION["tracking"] = true;
$entry_id = $db->lastInsertId();
$lowest_sql = ($db->prepare("SELECT MAX(visitor_id) as next FROM visitor_tracking"));
$lowest_sql->execute();
$lowest_sql = $lowest_sql->fetch(PDO::FETCH_ASSOC);
$lowest = $lowest_sql["next"];
if(!isset($lowest))
$lowest = 1;
else
$lowest++;
//update the visitor entry with the new visitor id
//Note, that we do it in this way to prevent a "race condition"
($db->prepare("UPDATE visitor_tracking SET visitor_id = '$lowest' WHERE entry_id = '$entry_id'"))->execute();
//place the current visitor_id into the session so we can use it on
//subsequent visits to track this person
$_SESSION["visitor_id"] = $lowest;
//save the current page to session so we don't track if someone just refreshes the page
$_SESSION["current_page"] = $current_page;
}
Notice: Undefined variable: db in /var/www/vhosts/sitenizin.com/143.shamcom.website/includes/head.php on line 49
Fatal error: Uncaught Error: Call to a member function query() on null in /var/www/vhosts/sitenizin.com/143.shamcom.website/includes/head.php:49
Stack trace:
#0 /var/www/vhosts/sitenizin.com/143.shamcom.website/index.php(4): include()
#1 {main}
thrown in /var/www/vhosts/sitenizin.com/143.shamcom.website/includes/head.php on line 49