Проблема с установкой в режиме Register Globals = on

Главные вкладки

Аватар пользователя Ruslan413 Ruslan413 21 марта 2008 в 23:04

Все пытаюсь поставить Drupal версии 5.7 на хостинг, где Register Globals = on.

Искал решение проблем на форуме drupal.org, и вот что там нашел

Attached patch will cause anything else than '', 0, '0', or 'Off' to cause a register_globals requirement error. I've also moved the setting to it's own requirement so it will not mask PHP version errors.

Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.69.2.9
diff -u -p -r1.69.2.9 system.install
--- modules/system/system.install 10 Jan 2008 22:14:24 -0000 1.69.2.9
+++ modules/system/system.install 13 Jan 2008 12:15:41 -0000
@@ -30,7 +30,7 @@ function system_requirements($phase) {
'value' => $software,
);

- // Test PHP version
+ // Test PHP version.
$requirements['php'] = array(
'title' => $t('PHP'),
'value' => ($phase == 'runtime') ? l(phpversion(), 'admin/logs/status/php') : phpversion(),
@@ -39,9 +39,22 @@ function system_requirements($phase) {
$requirements['php']['description'] = $t('Your PHP installation is too old. Drupal requires at least PHP %version.', array('%version' => DRUPAL_MINIMUM_PHP));
$requirements['php']['severity'] = REQUIREMENT_ERROR;
}
- if (ini_get('register_globals')) {
- $requirements['php']['description'] = $t('register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings.');
- $requirements['php']['severity'] = REQUIREMENT_ERROR;
+
+ // Test register_globals setting.
+ // A boolean ini value of off will be returned as an empty string or "0"
+ // while a boolean ini value of on will be returned as "1".
+ // The function can also return the literal string of INI value.
+ $register_globals = ini_get('register_globals');
+ $requirements['register_globals'] = array(
+ 'title' => $t('Register globals'),
+ );
+ if (!empty($register_globals) && strtolower($register_globals) != 'off') {
+ $requirements['register_globals']['description'] = $t('register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings.');
+ $requirements['register_globals']['severity'] = REQUIREMENT_ERROR;
+ $requirements['register_globals']['value'] = $t('Enabled (%value)', array('%value' =>$register_globals));
+ }
+ else {
+ $requirements['register_globals']['value'] = $t('Disabled (%value)', array('%value' => $register_globals));
}

// Test DB version

Подскажите, кто хорошо разбирается в коде Drupal, как этот код правильно вставить, и в какой файл? Пытался вставить в modules/system/system.install - не помогает. Может кто-то решил проблему установки иным способом?

И еще такая проблема: Ставлю Drupal 5.2 на хостинг c Register Globals = on., обновляю его до 5.7, все работает нормально. Но когда обновляю базу данных MySQL - на также друпаловскую, от 5.7 (база уже с контентом), то при заходе на сайт высвечивает просто белую страницу, но при этом в админку заходит нормально.

Подскажите, плиз, как быть! Заранее спасибо!

Комментарии

Аватар пользователя EZ EZ 22 марта 2008 в 11:47

в файл .HTACCESS (лежит в корне системы) вставь следующую строчку в конец файла

php_flag register_globals off

Аватар пользователя ivanov-void ivanov-void 27 марта 2011 в 12:23

EZ wrote:
в файл .HTACCESS (лежит в корне системы) вставь следующую строчку в конец файла

php_flag register_globals off

Все работает, спасибо EZ.

Аватар пользователя aGenT aGenT 22 марта 2008 в 15:15

Ну и и как эту проблему решить?
register_globals включен. Drupal требует отключить эту директиву. При включенной register_globals ваш сайт будет не защищен. Подробнее см. документацию PHP как менять настройки конфигурации. (Сейчас используется PHP register globals Разрешено ('1'))

Аватар пользователя Jerri Jerri (не проверено) 30 мая 2008 в 16:15

У некоторых хостеров настройки прописываются с помощью php.ini

из файла .htaccess скопируй те настройки в которых присутствует php_value, к примеру:
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0

создай файл php.ini и вставь в него нужные строки и залей в корневую папку сайта.

Аватар пользователя nnsauk@drupal.org nnsauk@drupal.org 26 февраля 2009 в 20:10

***

При установке Drupal на хостинг, где Register Globals = on, выдается предупреждение об уязвимости безопасности страницы по РНР и это правильное предупреждение!!!
Если безопасность страницы не столь важна, то в файле modules/system/system.install комментируйте фрагмент кода:
/*
if (!empty($register_globals) && strtolower($register_globals) != 'off') {
$requirements['php_register_globals']['description'] = $t('register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings.');
$requirements['php_register_globals']['severity'] = REQUIREMENT_ERROR;
$requirements['php_register_globals']['value'] = $t("Enabled ('value')", array('value' => $register_globals));
}
else {
$requirements['php_register_globals']['value'] = $t('Disabled');
}
*/
сохраняйте файл и в добрый путь!

***
Если при установке Drupal ему не нравится версия MySQL, предлагаемая хостингом, а вам это не очень важно, то в файле modules/system/system.install комментируйте фрагмент кода:
// Test DB version
/* global $db_type;
if (function_exists('db_status_report')) {
$requirements += db_status_report($phase);
}
*/
сохраняйте файл и в добрый путь!