Разное

Joomla 3.0 и magic_quotes_gpc

Joomla
Добавление в избранное
Сохранить

Joomla 3.0 и magic_quotes_gpc

О волшебных кавычках

Наверное, многие уже знают о том, что волшебные кавычки (magic quotes) были объявлены устаревшими в PHP 5.3 и полностью удалены в PHP 5.4. Для тех, кто не знает всей истории волшебных кавычек, милости просим прочитать официальный мануал на эту тему:

Волшебные кавычки и Joomla

В качестве рекомендации до версии 3.0 значение настройки magic_quotes_gpc должно было быть "выключено". Так как это был уровень рекомендации, а не требования, класс JRequest делал проверку этого значения, и если оно было включено, он удалял лишние кавычки с помощью функции stripslashes.

С выходом Joomla 3.0 все меняется. Класса JRequest больше нет, так как его заменил класс JInput, в котором нет этой проверки. Впрочем, в этом нет никакой необходимости, так как требования Joomla 3.0 – PHP не ниже версии 5.3.1, и как я уже упоминал ранее, волшебные кавычки были объявлены устаревшими в PHP 5.3. Действительно, зачем тратить ресурс на проверку того, что скоро будет удалено?

Проблема

После некоторых обсуждений в группах Google, было принято решение не городить огород и не пытаться обойти требование Joomla Platform 12 (на которой базируется Joomla 3.0) о выключенных волшебных кавычках. Но что это значит для простого пользователя, который захочет установить Joomla 3.0? А это значит, что при установке нельзя пройти даже первый шаг. Вместо него будет отображаться окно минимальных требований:

Joomla 3.0 и magic_quotes_gpc - страница требований

Но что же делать, ведь многие хостеры форсируют настройку magic_quotes_gpc во "включено"?

Решение проблемы

Итак, при установке Joomla 3.0 вы столкнулись с тем, что волшебные кавычки включены. Как же их отключить? Есть три пути решения этой проблемы:

1. Файл .htaccess.

Самый простой способ. Но он поможет только тогда, когда PHP работает на сервере как модуль Apache. Если PHP работает как FCGI, то переходите к пункту 2, в противном случае этот способ приведет к ошибке 500. Итак, просто добавьте в файл .htaccess следующую строку:

php_flag magic_quotes_gpc Off

2. Файл php.ini

Откройте файл конфигурации php.ini и выставьте значения в "Off" для указанных ниже настроек:

; Magic quotes

;
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

3. Попросить хостера

Хостер заблокировал возможность использования файла .htaccess и доступа к php.ini у вас тоже нет. Тяжелый случай... Но бывает и такое. Тут вам ничего не остается, как требовать у хостера выключения волшебных кавычек. А еще лучше, подумайте о смене хостера.

Удачи в освоении Joomla 3.0!

Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби, а в редких случаях и вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)

Подпишитесь на рассылку новостей CMScafe