О волшебных кавычках
Наверное, многие уже знают о том, что волшебные кавычки (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? А это значит, что при установке нельзя пройти даже первый шаг. Вместо него будет отображаться окно минимальных требований:
Но что же делать, ведь многие хостеры форсируют настройку 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!