Hello. I had a chat script that was running reasonably well until today, where I am not receiving "Session destroy failed" messages. It is probably something obvious, but I'm not seeing it - can someone take a look and tell me where I'm going wrong?
function login($login) {
global $user_timeout;
$sql = "SELECT count(*) FROM sessions WHERE user='$login' AND login>DATE_SUB(NOW(),INTERVAL ".$user_timeout." MINUTE)";
$result = mysql_query($sql);
if(mysql_error()) echo $sql."<br>\n".mysql_error();
list($has_login) = mysql_fetch_array($result);
if(!$has_login) {
session_start();
$_SESSION["user"] = $login;
$sql = "INSERT INTO sessions SET id='".session_id()."',user='".$_SESSION["user"]."'";
mysql_query($sql);
if(mysql_error()) echo $sql."<br>\n".mysql_error();
$sql = "INSERT INTO chat SET text='<".$_SESSION["user"]." entered>',user='".$_SESSION["user"]."',time=NOW()";
mysql_query($sql);
if(mysql_error()) echo $sql."\n<br>".mysql_error();
} else {
return "This nickname is already taken.";
}
}
function logout() {
global $user_timeout;
if($_SESSION["user"]) {
session_start();
$sql = "INSERT INTO chat SET text='<".$_SESSION["user"]." left>',user='".$_SESSION["user"]."',time=NOW()";
mysql_query($sql);
if(mysql_error()) echo $sql."\n<br>".mysql_error();
}
$sql = "DELETE FROM sessions WHERE id='".session_id()."'";
mysql_query($sql);
if(mysql_error()) echo $sql."<br>\n".mysql_error();
$sql = "DELETE FROM sessions WHERE login<DATE_SUB(NOW(),INTERVAL ".($user_timeout+5)." MINUTE)";
mysql_query($sql);
if(mysql_error()) echo $sql."<br>\n".mysql_error();
$_SESSION["user"] = false;
session_destroy();
}
Thanks in advance.