Changeset 2476 in subversion
- Timestamp:
- May 14, 2009 3:22:01 AM (4 years ago)
- File:
-
- 1 edited
-
trunk/roundcubemail/program/include/session.inc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/include/session.inc
r2472 r2476 20 20 */ 21 21 22 $GLOBALS['rcube_session_unsets'] = array(); 22 23 23 24 function rcube_sess_open($save_path, $session_name) … … 66 67 67 68 if ($oldvars = rcube_sess_read($key)) { 69 $a_oldvars = rcube_sess_unserialize($oldvars); 70 foreach ((array)$GLOBALS['rcube_session_unsets'] as $k) 71 unset($a_oldvars[$k]); 72 68 73 $DB->query( 69 74 "UPDATE " . get_table_name('session') . " 70 75 SET vars=?, changed= " . $now . " 71 76 WHERE sess_id=?", 72 rcube_sess_serialize(array_merge( rcube_sess_unserialize($oldvars), rcube_sess_unserialize($vars))),77 rcube_sess_serialize(array_merge($a_oldvars, rcube_sess_unserialize($vars))), 73 78 $key); 74 79 } … … 83 88 } 84 89 90 $GLOBALS['rcube_session_unsets'] = array(); 85 91 return true; 86 92 } … … 90 96 function rcube_sess_unset($var=NULL) 91 97 { 92 $DB = rcmail::get_instance()->get_dbh();93 94 98 if (empty($var)) 95 99 return rcube_sess_destroy(session_id()); 96 100 97 $now = $DB->fromunixtime(time()); 98 99 $sql_result = $DB->query( 100 "SELECT vars 101 FROM " . get_table_name('session') . " 102 WHERE sess_id=?", 103 session_id()); 104 105 if ($sql_arr = $DB->fetch_assoc($sql_result)) { 106 $vars = rcube_sess_unserialize($sql_arr['vars']); 107 if (isset($vars[$var])) { 108 unset($vars[$var]); 109 $DB->query( 110 "UPDATE " . get_table_name('session') . " 111 SET vars=?, changed= " . $now . " 112 WHERE sess_id=?", 113 rcube_sess_serialize($vars), 114 session_id()); 115 } 116 } 101 $GLOBALS['rcube_session_unsets'][] = $var; 102 unset($_SESSION[$var]); 117 103 118 104 return true;
Note: See TracChangeset
for help on using the changeset viewer.
