Index: branches/5.2.x/core/install/prerequisites.php =================================================================== diff -u -N -r15549 -r15595 --- branches/5.2.x/core/install/prerequisites.php (.../prerequisites.php) (revision 15549) +++ branches/5.2.x/core/install/prerequisites.php (.../prerequisites.php) (revision 15595) @@ -1,6 +1,6 @@ isPhpSettingChangeable('display_errors', '1'); $ret['error_reporting'] = $this->canChangeErrorReporting(); $ret['date.timezone'] = ini_get('date.timezone') != ''; + $ret['variables_order'] = $this->_hasLetters(ini_get('variables_order'), Array ('G', 'P', 'C', 'S')); - $ret['variables_order'] = strpos(ini_get('variables_order'), 'GPC') !== false; - $output_buffering = strtolower(ini_get('output_buffering')); $ret['output_buffering'] = $output_buffering == 'on' || $output_buffering > 0; return $ret; } /** + * Determines of a setting string has all given letters (ignoring order) in it + * + * @param string $setting + * @param Array $search_letters + * @return bool + * @access protected + */ + protected function _hasLetters($setting, $search_letters) + { + $setting = preg_replace('/(' . implode('|', $search_letters) . ')/', '*', $setting); + + return substr_count($setting, '*') == count($search_letters); + } + + /** * Detects if error reporting can be changed at runtime * * @return bool