I have code for tracking time of visitor. I have the following function:
[code=php]
<?
$db = “data/testdb”;
$dbres = sqlite_open ($db, 0666,$error);
if (!is_int ($field))
if (!is_resource ($dbres))
{
die (“sqlite error:$error”);
}
$GLOBALS[‘slength’]= 300;
$GLOBALS[‘dbres’] = connect (“data/testdb”);
$GLOBALS[‘visitID’]= $_COOKIE[‘cookname’];
$GLOBALS[‘userStats’];
if (empty($visitID) )
{
$userStats=newuser();
print “Welcome, first time user!”;
}
else
{
print “Welcome back, $visitID!”;
$userStats=olduser($visitID);
}
function newuser()
{
$visitData = array
(
‘FirstVisit’=>time(),
‘LastVisit’=>time(),
‘numVisits’=>1,
‘totalDuration’=>0,
‘totalClicks’=>1,
);
insertVisit ($visitData); /* row 132 function InsertVisit*/
setcookie (“visitID”, $visitData [‘ID’], time()+(60*60*24*365*10), “/”);
return $visitData;
}
function olduser($visitID)
{
$now = time();
$visitData = getVisit($visitID);
if ( ! $visitData )
{ return newuser();}
$visitData [‘totalClicks’]++;
if ( ($visitData [‘lastVisit’] + $GLOBALS [‘slength’]) > $now)
{
$visitData [‘totalDuration’] += ($now – $visitData [‘lastVisit’]);
}
else
{
$visitData [‘numVisits’]++;
}
$visitData [‘lastVisit’]=$now;
updateVisit ($visitData);
return $visitData;
}
function getVisit ($visitID)
{
$query = ”
SELECT * from trackVisit WHERE ID = $visitID”;
$result = sqlite_query ($GLOBALS[‘dbres’], $query);
if (! sqlite_num_rows ($result) )
{
return FALSE;
}
return sqlite_fetch_array ($result, SQLITE_ASSOC);
}
/* Old user*/
function updateVisit (&$visitData)
{
$update_pairs = array ();
foreach ($visitData as $field => $val)
{ if (!is_int ($field))
{
array_push ($update_pairs,”$field=$val” );
}
}
$query = “UPDATE trackVisit SET”;
$query .= implode (“,” ,$update_pairs);
$query .= “WHERE ID = “.$visitData [‘ID’];
sqlite_query ($GLOBALS[‘dbres’],$query);
}
/* New user*/
function insertVisit (&$visitData)
{
$query = “INSERT INTO trackVisit (
“;
$query .= implode (“,”,array_keys ($visitData));
$query .= “)VALUES ( “;
$query .= implode (“,” ,array_values ($visitData));
$query.= “);
“;
$result = sqlite_query ($GLOBALS[‘dbres’], $query);
$visitData [‘ID’]= sqlite_last_insert_rowid ($GLOBALS[‘dbres’]);
/* field ID is automatic incremented*/
}
?>
What is actually correct formula for variable $visitData [‘totalDuration’] ?
Now is $visitData [‘totalDuration’] += ($now – $visitData [‘lastVisit’]);