From: Brad Jorsch Date: Fri, 9 Oct 2015 21:25:36 +0000 (-0400) Subject: Fix "installer started" detection X-Git-Tag: 1.31.0-rc.0~9458 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/categories/modifier.php?a=commitdiff_plain;h=673c07656e6aa5cad2677d6cb56bbf3ceef6bea5;p=lhc%2Fweb%2Fwiklou.git Fix "installer started" detection NoLocalSettings.php tries to detect whether the installer has been started or not. But this detection has been broken since I4cf237d when a change was made to stop setting the session name when NO_SESSION is defined, causing NoLocalSettings.php to be looking at a different session-cookie than is actually being used by the installer. The complete fix is twofold: * Have WebInstaller::startSession() call session_name() * Have NoLocalSettings.php not call session_name() when PHP's session.auto_start configuration setting is set. Change-Id: I618d11df902b5d1f70e175bc94137621e9195c2f --- diff --git a/includes/NoLocalSettings.php b/includes/NoLocalSettings.php index 6de9bfcde0..d299ab6ff5 100644 --- a/includes/NoLocalSettings.php +++ b/includes/NoLocalSettings.php @@ -37,7 +37,9 @@ foreach ( array_filter( explode( '/', $_SERVER['PHP_SELF'] ) ) as $part ) { if ( !function_exists( 'session_name' ) ) { $installerStarted = false; } else { - session_name( 'mw_installer_session' ); + if ( !wfIniGetBool( 'session.auto_start' ) ) { + session_name( 'mw_installer_session' ); + } $oldReporting = error_reporting( E_ALL & ~E_NOTICE ); $success = session_start(); error_reporting( $oldReporting ); diff --git a/includes/installer/WebInstaller.php b/includes/installer/WebInstaller.php index c2243b9efd..67a4defd2c 100644 --- a/includes/installer/WebInstaller.php +++ b/includes/installer/WebInstaller.php @@ -343,6 +343,7 @@ class WebInstaller extends Installer { $this->phpErrors = array(); set_error_handler( array( $this, 'errorHandler' ) ); try { + session_name( 'mw_installer_session' ); session_start(); } catch ( Exception $e ) { restore_error_handler();