From 8d6ddbbd0714c90651cba2a955df6aa99fc1143f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 1 Jul 2022 17:48:55 +0200 Subject: [inc/Session] Add call to save session data --- inc/session.inc.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'inc') 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"; -- cgit v1.2.3-55-g7522