PHP 5.3, кажется, падает на скриптах, когда у нас включен register_globals
Apache segfaults, когда у нас включен register_globals с php 5.3. Я знаю, что мы не должны этого делать, и у нас это сейчас отключено, но некоторые из нашего очень старого кода нуждаются в этом. У кого-нибудь есть намеки на то, что попробовать / посмотреть, чтобы решить эту проблему?
Спасибо
1 ответ
лоскутный подход
Вы можете включить некоторый код в самом начале очень старого скрипта, вы можете использовать один из хорошо известных кодов совместимости register_global, который вы можете найти в Google.
Примером может быть:
// ################# :: Register Globals Compatibility :: #################
$globals_test = @ini_get('register_globals');
if ( isset($globals_test) && empty($globals_test) ) {
// These still need some work :: Cookie|Server|Env are ok now.
if ( !empty($HTTP_GET_VARS) ) { extract($HTTP_GET_VARS, EXTR_SKIP); }
if ( !empty($HTTP_POST_VARS) ) { extract($HTTP_POST_VARS, EXTR_OVERWRITE); }
define('_GLOBALS', FALSE);
} else {
define('_GLOBALS', TRUE);
}
Авто-пэчворк подход
Можете добавить:
php_value auto_prepend_file "/path/to/file/with_the_above_code"
в ваш раздел .htaccess или VirutualHosts для автоматического выполнения работы без необходимости касания какого-либо существующего сценария.
Разумный подход
Конечно, лучше всего было бы переписать старый код, так как register_globals - хорошо известное зло.