diff --git a/phpBB/config/test/config.yml b/phpBB/config/test/config.yml index a603f59dec..b923e2cb04 100644 --- a/phpBB/config/test/config.yml +++ b/phpBB/config/test/config.yml @@ -4,3 +4,6 @@ imports: core: require_dev_dependencies: true allow_install_dir: true + + session: + force_sid: false diff --git a/phpBB/phpbb/di/extension/container_configuration.php b/phpBB/phpbb/di/extension/container_configuration.php index 697f083a4e..b3a726ad2a 100644 --- a/phpBB/phpbb/di/extension/container_configuration.php +++ b/phpBB/phpbb/di/extension/container_configuration.php @@ -62,6 +62,7 @@ class container_configuration implements ConfigurationInterface ->arrayNode('session') ->addDefaultsIfNotSet() ->children() + ->booleanNode('force_sid')->defaultValue(false)->end() ->booleanNode('log_errors')->defaultValue(false)->end() ->end() ->end() diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php index fb93539b7d..400970242d 100644 --- a/phpBB/phpbb/session.php +++ b/phpBB/phpbb/session.php @@ -478,7 +478,7 @@ class session */ function session_create($user_id = false, $set_admin = false, $persist_login = false, $viewonline = true) { - global $db, $config, $cache, $phpbb_container, $phpbb_dispatcher; + global $SID, $_SID, $db, $config, $cache, $phpbb_container, $phpbb_dispatcher; $this->data = array(); @@ -689,6 +689,8 @@ class session $db->sql_query($sql); } + $SID = '?sid='; + $_SID = ''; return true; } else @@ -781,6 +783,11 @@ class session } // refresh data + if ($phpbb_container->getParameter('session.force_sid')) + { + $SID = '?sid=' . $this->session_id; + $_SID = $this->session_id; + } $this->data = array_merge($this->data, $sql_ary); if (!$bot) @@ -820,6 +827,12 @@ class session SET user_lastvisit = ' . (int) $this->data['session_time'] . ' WHERE user_id = ' . (int) $this->data['user_id']; $db->sql_query($sql); + + if ($phpbb_container->getParameter('session.force_sid')) + { + $SID = '?sid='; + $_SID = ''; + } } $session_data = $sql_ary; diff --git a/tests/mock/container_builder.php b/tests/mock/container_builder.php index 22241528d3..5b73256fdd 100644 --- a/tests/mock/container_builder.php +++ b/tests/mock/container_builder.php @@ -22,6 +22,7 @@ class phpbb_mock_container_builder implements ContainerInterface { $this->setParameter('debug.load_time', false); $this->setParameter('session.log_errors', false); + $this->setParameter('session.force_sid', true); } /**