unix_timestamp(date_add(now(),interval 1 hour))'; $sth = mysql_query($stmt); if($sth) { $row = mysql_fetch_array($sth); return($row['session_data']); } else { return $sth; } } function on_session_write($key, $val) { error_log("$key = $value"); $val = addslashes($val); $insert_stmt = "INSERT INTO sessions values('$key', "; $insert_stmt .= "'$val',unix_timestamp(date_add(now(), interval 1 hour)))"; $update_stmt = "UPDATE sessions SET session_data ='$val', "; $update_stmt .= "session_expiration = unix_timestamp(date_add(now(), interval 1 hour))"; $update_stmt .= "WHERE session_id ='$key '"; // First we try to insert, if that doesn't succeed, it means // session is already in the table and we try to update mysql_query($insert_stmt); $err = mysql_error(); if ($err != 0) { error_log( mysql_error()); mysql_query($update_stmt); } } function on_session_destroy($key) { mysql_query("DELETE FROM sessions WHERE session_id = '$key'"); } function on_session_gc($max_lifetime) { mysql_query("DELETE FROM sessions WHERE unix_timestamp(session_expiration) < unix_timestamp(now())"); } // Set the save handlers // This will make the session functions/variables use our functions instead. session_set_save_handler("on_session_start", "on_session_end", "on_session_read", "on_session_write", "on_session_destroy", "on_session_gc"); // Carry on as if you were normal session_start(); ?>