summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--inc/session.inc.php19
1 files changed, 16 insertions, 3 deletions
diff --git a/inc/session.inc.php b/inc/session.inc.php
index 3afbc4ce..d83de088 100644
--- a/inc/session.inc.php
+++ b/inc/session.inc.php
@@ -152,11 +152,11 @@ class Session
ErrorHandler::traceError('Error: Could not set Cookie for Client (headers already sent)');
}
register_shutdown_function(function () {
- Session::saveInternal();
+ self::saveOnShutdown();
});
}
-
- public static function saveInternal()
+
+ private static function saveOnShutdown()
{
$now = time();
$args = ['lastip' => $_SERVER['REMOTE_ADDR']];
@@ -166,6 +166,19 @@ class Session
if (self::$dataChanged) {
$args['data'] = json_encode(self::$data);
}
+ self::saveData($args);
+ }
+
+ public static function saveExtraData()
+ {
+ if (!self::$dataChanged)
+ return;
+ self::saveData(['data' => json_encode(self::$data)]);
+ self::$dataChanged = false;
+ }
+
+ private static function saveData(array $args)
+ {
$query = "UPDATE session SET " . implode(', ', array_map(function ($key) {
return "$key = :$key";
}, array_keys($args))) . " WHERE sid = :sid";