summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2009-05-29 19:10:24 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2009-05-29 19:10:24 +0000
commit7759370a52e75d411dcc322f20af3acd3c62dc35 (patch)
tree795e511567d80a77e9c5044c1d784fd1744446fb
parent18b2d84197ebfedd6dbfc9ceecaa83e9a00a3cd7 (diff)
- prevent duplicated inserts (#1485867)
git-svn-id: https://svn.roundcube.net/trunk@2573 208e9e7b-5314-0410-a742-e7e81cd9613c
-rw-r--r--roundcubemail/program/include/session.inc9
1 files changed, 7 insertions, 2 deletions
diff --git a/roundcubemail/program/include/session.inc b/roundcubemail/program/include/session.inc
index a73ee5c48..ee9bb75ab 100644
--- a/roundcubemail/program/include/session.inc
+++ b/roundcubemail/program/include/session.inc
@@ -65,8 +65,13 @@ function rcube_sess_write($key, $vars)
$now = $DB->fromunixtime(time());
- if ($oldvars = rcube_sess_read($key)) {
- $a_oldvars = rcube_sess_unserialize($oldvars);
+ $sql_result = $DB->query(
+ "SELECT vars FROM " . get_table_name('session') . "
+ WHERE sess_id=?", $key);
+
+ if ($sql_arr = $DB->fetch_assoc($sql_result)) {
+
+ $a_oldvars = rcube_sess_unserialize($sql_arr['vars']);
foreach ((array)$GLOBALS['rcube_session_unsets'] as $k)
unset($a_oldvars[$k]);