thomascube
2006-11-22 d04d202234b0ba1e65b1c581acf0cbe715120dd7
program/include/session.inc
@@ -45,7 +45,7 @@
  if ($sql_arr = $DB->fetch_assoc($sql_result))
    {
    $SESS_CHANGED = mktime(); //$sql_arr['changed'];
    $SESS_CHANGED = $sql_arr['changed'];
    if (strlen($sql_arr['vars']))
      return $sql_arr['vars'];
@@ -70,7 +70,7 @@
    session_decode($vars);
    $DB->query("UPDATE ".get_table_name('session')."
                SET    vars=?,
                       changed=now()
                       changed=".$DB->now()."
                WHERE  sess_id=?",
                $vars,
                $key);
@@ -79,7 +79,7 @@
    {
    $DB->query("INSERT INTO ".get_table_name('session')."
                (sess_id, vars, ip, created, changed)
                VALUES (?, ?, ?, now(), now())",
                VALUES (?, ?, ?, ".$DB->now().", ".$DB->now().")",
                $key,
                $vars,
                $_SERVER['REMOTE_ADDR']);
@@ -105,8 +105,6 @@
              WHERE sess_id=?",
              $key);
  rcmail_clear_session_temp($key);
  return TRUE;
  }
@@ -119,7 +117,7 @@
  // get all expired sessions  
  $sql_result = $DB->query("SELECT sess_id
                            FROM ".get_table_name('session')."
                            WHERE ".$DB->unixtimestamp('now()')."-".$DB->unixtimestamp('changed')." > ?",
                            WHERE ".$DB->unixtimestamp($DB->now())."-".$DB->unixtimestamp('changed')." > ?",
                            $maxlifetime);
                                   
  $a_exp_sessions = array();
@@ -138,9 +136,9 @@
                WHERE sess_id IN ('".join("','", $a_exp_sessions)."')");
    }
  // remove session specific temp dirs
  foreach ($a_exp_sessions as $key)
    rcmail_clear_session_temp($key);
  // also run message cache GC
  rcmail_message_cache_gc();
  rcmail_temp_gc();
  return TRUE;
  }