From e0db878eb71dd40d6c000f1debedad3f16f15ba6 Mon Sep 17 00:00:00 2001 From: chjacobsen <chjacobsen@ispconfig3> Date: Fri, 01 Apr 2011 15:59:23 -0400 Subject: [PATCH] Adding a new client remotelly, it was not been associated to the proper reseller. --- interface/lib/classes/session.inc.php | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php index 11224c8..34dfaa5 100644 --- a/interface/lib/classes/session.inc.php +++ b/interface/lib/classes/session.inc.php @@ -42,7 +42,8 @@ } function close () { - if (!empty($this->fieldarray)) { + + if (!empty($this->session_array)) { $result = $this->gc(ini_get('session.gc_maxlifetime')); return $result; } @@ -66,6 +67,15 @@ if (!empty($this->session_array) && $this->session_array['session_id'] != $session_id) { $this->session_array = array(); } + + // Dont write session_data to DB if session data has not been changed after reading it. + if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) { + $session_id = $this->db->quote($session_id); + $last_updated = date('Y-m-d H:i:s'); + $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'"); + return true; + } + if ($this->session_array['session_id'] == '') { $session_id = $this->db->quote($session_id); @@ -74,19 +84,21 @@ $session_data = $this->db->quote($session_data); $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data) VALUES ('$session_id','$date_created','$last_updated','$session_data')"; $this->db->query($sql); + } else { $session_id = $this->db->quote($session_id); $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data' WHERE session_id = '$session_id'"; $this->db->query($sql); + } return true; } function destroy ($session_id) { - + $session_id = $this->db->quote($session_id); $sql = "DELETE FROM sys_session WHERE session_id = '$session_id'"; $this->db->query($sql); @@ -95,7 +107,7 @@ } function gc ($max_lifetime) { - + $real_now = date('Y-m-d H:i:s'); $dt1 = strtotime("$real_now -$max_lifetime seconds"); $dt2 = date('Y-m-d H:i:s', $dt1); @@ -106,11 +118,12 @@ return true; } - + function __destruct () { @session_write_close(); - } + } + } ?> \ No newline at end of file -- Gitblit v1.9.1