diff --git a/classes/config.php b/classes/config.php index effbb78ad..95bf3bf71 100644 --- a/classes/config.php +++ b/classes/config.php @@ -124,12 +124,12 @@ class Config { list ($defval, $deftype) = $this::_DEFAULTS[$const]; - $this->params[$cvalue] = [ $this->cast_to(!empty($override) ? $override : $defval, $deftype), $deftype ]; + $this->params[$cvalue] = [ self::cast_to(!empty($override) ? $override : $defval, $deftype), $deftype ]; } } } - private function cast_to(string $value, int $type_hint) { + static function cast_to(string $value, int $type_hint) { switch ($type_hint) { case self::T_BOOL: return sql_bool_to_bool($value); @@ -149,7 +149,7 @@ class Config { private function _add(string $param, string $default, int $type_hint) { $override = getenv($this::_ENVVAR_PREFIX . $param); - $this->params[$param] = [ $this->cast_to(!empty($override) ? $override : $default, $type_hint), $type_hint ]; + $this->params[$param] = [ self::cast_to(!empty($override) ? $override : $default, $type_hint), $type_hint ]; } static function add(string $param, string $default, int $type_hint = Config::T_STRING) { diff --git a/classes/handler/public.php b/classes/handler/public.php index 42be6f713..58e467a4f 100755 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -354,10 +354,12 @@ class Handler_Public extends Handler { $remember_me = clean($_POST["remember_me"] ?? false); $safe_mode = checkbox_to_sql_bool(clean($_POST["safe_mode"] ?? false)); - if ($remember_me) { - @session_set_cookie_params(Config::get(Config::SESSION_COOKIE_LIFETIME)); - } else { - @session_set_cookie_params(0); + if (session_status() != PHP_SESSION_ACTIVE) { + if ($remember_me) { + session_set_cookie_params(Config::get(Config::SESSION_COOKIE_LIFETIME)); + } else { + session_set_cookie_params(0); + } } if (UserHelper::authenticate($login, $password)) { diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index 0d0dcadbc..ffee57ed5 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -1370,6 +1370,8 @@ class Pref_Prefs extends Handler_Protected { static function _init_user_prefs($uid, $profile = false) { + Prefs::initialize($uid, $profile); + if (get_schema_version() < 63) $profile_qpart = ""; $pdo = Db::pdo(); diff --git a/classes/userhelper.php b/classes/userhelper.php index 82a2fe05f..949c8a5cf 100644 --- a/classes/userhelper.php +++ b/classes/userhelper.php @@ -18,7 +18,9 @@ class UserHelper { if ($user_id && !$check_only) { - session_start(); + if (session_status() != PHP_SESSION_ACTIVE) + session_start(); + session_regenerate_id(true); $_SESSION["uid"] = $user_id;