From 2f85abeb817dba2476294f23fcdff91140ed2e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Wed, 19 Oct 2022 08:23:48 +0000 Subject: [PATCH] Resolve #1688 "Fatal Error im bootstrap mit PHP 8.1" Closes #1688 Merge request studip/studip!1090 --- lib/bootstrap.php | 9 ++++++++- lib/phplib/Seminar_Auth.class.php | 2 +- lib/phplib/Seminar_Session.class.php | 2 +- tests/functional/_bootstrap.php | 6 +++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/bootstrap.php b/lib/bootstrap.php index 1c3af707ff3..3950eefc8c7 100644 --- a/lib/bootstrap.php +++ b/lib/bootstrap.php @@ -65,7 +65,14 @@ if (isset($_SERVER['SERVER_NAME'])) { $GLOBALS['ASSETS_URL'] = $ABSOLUTE_URI_STUDIP . 'assets/'; require __DIR__ . '/classes/StudipFileloader.php'; -$added = StudipFileloader::load('config_defaults.inc.php config_local.inc.php', $GLOBALS, compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL', 'CANONICAL_RELATIVE_PATH_STUDIP'), true); + +$added_configs = []; + +StudipFileloader::load('config_defaults.inc.php config_local.inc.php', $added_configs, compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL', 'CANONICAL_RELATIVE_PATH_STUDIP'), true); + +foreach($added_configs as $key => $value) { + $GLOBALS[$key] = $value; +} // If no ENV setting was found in the config files, assume ENV=production if (!defined('Studip\ENV')) { diff --git a/lib/phplib/Seminar_Auth.class.php b/lib/phplib/Seminar_Auth.class.php index c1c2b860b8b..3a915e56fb1 100644 --- a/lib/phplib/Seminar_Auth.class.php +++ b/lib/phplib/Seminar_Auth.class.php @@ -356,7 +356,7 @@ class Seminar_Auth if ($check_auth['uid']) { $uid = $check_auth['uid']; - if ($check_auth['need_email_activation'] == $uid) { + if (isset($check_auth['need_email_activation']) && $check_auth['need_email_activation'] == $uid) { $this->need_email_activation = $uid; $_SESSION['semi_logged_in'] = $uid; return false; diff --git a/lib/phplib/Seminar_Session.class.php b/lib/phplib/Seminar_Session.class.php index a5bc5927ab9..937a865a10a 100644 --- a/lib/phplib/Seminar_Session.class.php +++ b/lib/phplib/Seminar_Session.class.php @@ -314,7 +314,7 @@ class Seminar_Session $this->delete(); $this->start(); foreach ($keep_session_vars as $k) { - $_SESSION[$k] = $keep[$k]; + $_SESSION[$k] = $keep[$k] ?? null; } } diff --git a/tests/functional/_bootstrap.php b/tests/functional/_bootstrap.php index 4a71787b141..8feb13ea66e 100644 --- a/tests/functional/_bootstrap.php +++ b/tests/functional/_bootstrap.php @@ -32,12 +32,16 @@ StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/plugins/db'); StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/plugins/engine'); // load config-variables +$added_configs = []; StudipFileloader::load( 'config_defaults.inc.php config_local.inc.php', - $GLOBALS, + $added_configs, compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL', 'CANONICAL_RELATIVE_PATH_STUDIP'), true ); +foreach($added_configs as $key => $value) { + $GLOBALS[$key] = $value; +} require 'config/config.inc.php'; // Do not send mails of any kind during tests -- GitLab