Holla,
I've written a IP logging script which isnt acting quite as expected basically when its run, it checks for a session variable expiredate if that doesnt exist it logs into the database updates all the fields (ip, time,date) etc then sets the session variable time()+3600 so basically it will be destroyed after an hour and the ip relog'd
$currenttime = time();
$var = time()+3600;
$date = date("j-n-Y");
$time = date("H:i:s");
$ip = getenv('REMOTE_ADDR');
$_SESSION['ip'] = $ip;
$db = mysql_connect('localhost','*****','*****') or die (mysql_error());
mysql_select_db('weblogs', $db);
$query= "SELECT ipaddress FROM access WHERE ipaddress='$ip'";
$result = mysql_query($query, $db);
$rows = mysql_num_rows($result);
if (!$_SESSION['expiredate'])
{
if ($rows >=1)
{
$query3 = "SELECT timesvisited FROM access where ipaddress='$ip'";
$result3 = mysql_query($query3);
$data = mysql_fetch_array($result3);
$num_results = mysql_num_rows($result3);
$visit = $data['timesvisited'];
$timesvisited = ($visit + 1);
$query4 = "UPDATE access SET date = '$date', time = '$time', timesvisited = '$timesvisited' WHERE ipaddress='$ip'";
$result4 = mysql_query($query4);
$_SESSION['expiredate'] = time()+3600;
echo '3 '.$_SESSION['expiredate'];
}
elseif (!$rows)
{
$visit = '1';
$query2="INSERT INTO access values ('', '".$ip."', '".$date."', '".$time."', '".$visit."')";
$result = mysql_query($query2);
$_SESSION['expiredate'] = time()+3600;
echo '4 '.$_SESSION['expiredate'];
}
}
elseif ($_SESSION['expiredate'] < $currenttime)
{
unset($_SESSION['expiredate']);
if ($rows >=1)
{
$query3 = "SELECT timesvisited FROM access where ipaddress='$ip'";
$result3 = mysql_query($query3);
$data = mysql_fetch_array($result3);
$num_results = mysql_num_rows($result3);
$visit = $data['timesvisited'];
$timesvisited = ($visit + 1);
$query4 = "UPDATE access SET date = '$date', time = '$time', timesvisited = '$timesvisited' WHERE ipaddress='$ip'";
$result4 = mysql_query($query4);
$_SESSION['expiredate'] = time()+3600;
echo time();
echo '1 '.$_SESSION['expiredate'];
exit;
}
elseif (!$rows)
{
$visit = '1';
$query2="INSERT INTO access values ('', '".$ip."', '".$date."', '".$time."', '".$visit."')";
$result = mysql_query($query2);
$_SESSION['expiredate'] = time()+3600;
echo '2 '.$_SESSION['expiredate'];
exit;
}
}
elseif ($_SESSION['expiredate'] > $currenttime)
{
echo 'hey';
}
it never seens to get past the first if statement even when the session variable exists which is confusing i imagine its not coded brilliantly but any general pointers would be great