magic quotes gpc — опция php, которая включает предварительную обработку -экранирование спецсимволов внутри данных get- и post- запросов. Задумка была такова, что забывчивые программисты могли оставить sql-инъекцию на сайте, а если все данные изначально экранируются, то забыть их разъэкранировать гораздо сложнее, чем наоборот.
Вскоре разработчики пришли к выводу, что такой подход не удобен, но хитрые хостеры предпочитают по умолчанию все-таки включать её, по понятным причинам, и не всегда дают возможность ее убрать.
После версии PHP 5.3 данная опция перешла в разряд deprecated(устаревшая), а вскоре и вовсе будет выпилена из php.
magic_quotes_gpc и joomla
А в Joomla до 3-ьей версии magic_quotes_gpc проверялась внутри самого фрэймворка и автоматически предпринималось разэкранирование, в случае, если она была включена. В Joomla 3 эту самую проверку убрали и вместо этого добавили требование версии php > 5.3 при установке. По мне сомнительное решение. Но нытьем проблему не решить, поэтому начинаем делать.
Отключение magic_quotes_gpc
Способ первый. через .htaccess
Работает в тех случаях, когда хостер позволяет через .htaccess управлять конфигурацией php.
Дописываем в htaccess файл строчку:
php_flag magic_quotes_gpc off
Способ второй. php.ini
Самый правильный способ, но на shared-хостингах как правило не подпускают к настройкам php. Зачастую доступ к php.ini дается через панель хостинга. В остальных случаях, всё просто:
Открываем php.ini, дописываем или редактируем строчку
magic_quotes_gpc = Off
Способ третий. Хардкод
добавляем эти строки в начало файлов index.php и administrator/index.php
[php]
if (get_magic_quotes_gpc()) {
function clean(&$source, $type = ‘string’) {
$linkstrip = function(&$v){
$v = stripslashes($v);
};
array_walk_recursive($source, $linkstrip);
}
clean($_GET);
clean($_POST);
clean($_REQUEST);
}
[/php]
Просто проходимся по массивам входных данных и убираем лишнее. Этот поможет в случае, если необходимо перенести готовый сайт на хостинг, где эта опция включена и это навсегда. Так и случилось со мной, один из моих сайтов на joomla расположился на godaddy, где по умолчанию magic_quotes_gpc включено, а возможности отключить нет.
У меня не работало ничего из этого. Помогло добавление «php_flag magic_quotes_gpc Off» в файл httpd.conf
Source: http://emanipur.org/blog/item/137-magic-quotes-gpc-off-problem-in-joomla-3-installation-check
Огромный респект за 3 способ! Первые два без доступа, а хардкодом буржуйский хостер вылечился радикально.
Спасибо за полезный совет, первый вариант (через .htaccess) работает везде.