From 83d7d0b970dabb9628d692f1c3ebcea5a166a006 Mon Sep 17 00:00:00 2001 From: Wruczek Date: Thu, 30 Jun 2022 03:47:15 +0200 Subject: [PATCH] Don't store user language in session So that we don't save it in every session on every page visit. Cookies are enough to remember selected language. --- src/api/setlang.php | 1 - src/private/php/Utils/Language/LanguageUtils.php | 2 +- src/private/php/Utils/TemplateUtils.php | 2 +- src/private/php/load.php | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/api/setlang.php b/src/api/setlang.php index 12b693c..4b0f691 100644 --- a/src/api/setlang.php +++ b/src/api/setlang.php @@ -19,7 +19,6 @@ if ($lang === null) { } setcookie("tswebsite_language", $lang->getLanguageCode(), time() + (60 * 60 * 24) * 60, "/"); // 60 days -$_SESSION["userlanguageid"] = $lang->getLanguageId(); $returnTo = "../"; diff --git a/src/private/php/Utils/Language/LanguageUtils.php b/src/private/php/Utils/Language/LanguageUtils.php index 5b1920b..0faaa89 100644 --- a/src/private/php/Utils/Language/LanguageUtils.php +++ b/src/private/php/Utils/Language/LanguageUtils.php @@ -197,7 +197,7 @@ class LanguageUtils { } $defaultlang = $this->getDefaultLanguage(); - $lang = $this->getLanguageById(@$_SESSION["userlanguageid"]); + $lang = $this->getLanguageById(USER_LANGUAGE_ID); if(!$lang && !$defaultlang) { throw new \Exception("Cannot get user or default language"); diff --git a/src/private/php/Utils/TemplateUtils.php b/src/private/php/Utils/TemplateUtils.php index b2baac9..ba9eab0 100644 --- a/src/private/php/Utils/TemplateUtils.php +++ b/src/private/php/Utils/TemplateUtils.php @@ -86,7 +86,7 @@ class TemplateUtils { if($loadLangs) { $langUtils = LanguageUtils::i(); - $userlang = $langUtils->getLanguageById($_SESSION["userlanguageid"]); + $userlang = $langUtils->getLanguageById(USER_LANGUAGE_ID); if ($userlang === null) { $userlang = $langUtils->getDefaultLanguage(); diff --git a/src/private/php/load.php b/src/private/php/load.php index 2130177..4c4d83e 100644 --- a/src/private/php/load.php +++ b/src/private/php/load.php @@ -50,14 +50,14 @@ if (!defined("DISABLE_CSRF_CHECK") && // Try to guess user language and store it // If the current language is not defined, or is invalid then return to default -if(!isset($_SESSION["userlanguageid"])) { +{ $lang = LanguageUtils::i()->detectUserLanguage(); if(!$lang) { $lang = LanguageUtils::i()->getDefaultLanguage(); } - $_SESSION["userlanguageid"] = $lang->getLanguageId(); + define("USER_LANGUAGE_ID", $lang->getLanguageId()); } // Shortcut to language functions