From: Kazuki Przyborowski Date: Tue, 4 Aug 2009 04:20:29 +0000 (+0000) Subject: Another bug fix to MySQL sessions. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ced0fc99a86b84972778a6da38ca5e11f2c29fd6;p=idb%2FiDB.git.git Another bug fix to MySQL sessions. git-svn-id: svn://svn.code.sf.net/p/intdb/svn/trunk@289 2b68903e-0b30-0410-9a39-a2e4f3c5be39 --- diff --git a/inc/admin/main.php b/inc/admin/main.php index c93eba8..beaeacf 100644 --- a/inc/admin/main.php +++ b/inc/admin/main.php @@ -72,6 +72,7 @@ $Settings['KBoostPercent'] = "6|10"; } %i", array($id,$time)); +$sqlr = query("SELECT `session_data` FROM `".$sqltable."sessions` WHERE `session_id` = '%s'", array($id,$time)); $rs = mysql_query($sqlr); $a = mysql_num_rows($rs); if($a > 0) { $row = mysql_fetch_assoc($rs); $data = $row['session_data']; } return $data; } -function write( $id, $data ) { +function sqlsession_write($id,$data) { global $sqltable; -$time = GMTimeStamp() + ini_get("session.gc_maxlifetime"); +$time = GMTimeStamp(); $sqlw = query("REPLACE `".$sqltable."sessions` VALUES('$id','$data', $time)", array($id,$data,$time)); $rs = mysql_query($sqlw); return true; } -function destroy( $id ) { +function sqlsession_destroy($id) { global $sqltable; $sqld = query("DELETE FROM `".$sqltable."sessions` WHERE `session_id` = '$id'", array($id)); mysql_query($sqld); return true; } -function gc() { +function sqlsession_gc($maxlifetime) { global $sqltable; -$time = GMTimeStamp(); +$time = GMTimeStamp() - $maxlifetime; //$sqlg = query('DELETE FROM `'.$sqltable.'sessions` WHERE `expires` < UNIX_TIMESTAMP();', array(null)); $sqlg = query('DELETE FROM `'.$sqltable.'sessions` WHERE `expires` < %i', array($time)); mysql_query($sqlg); return true; } -@session_set_save_handler("open", "close", "read", "write", "destroy", "gc"); +@session_set_save_handler("sqlsession_open", "sqlsession_close", "sqlsession_read", "sqlsession_write", "sqlsession_destroy", "sqlsession_gc"); if($cookieDomain==null) { @session_set_cookie_params(0, $cbasedir); } if($cookieDomain!=null) {