Повторное экранирование кавычек в PHP

Столкнулся с проблемой автоматического добавления кавычек в PHP при вводе информации в базу данных.

Немного покопавшись в интернете обнаружил, что проблему можно решить, изменив настройки сервера с помощью директив в .htaccess: magic_quotes_gpc и magic_quotes_runtime.

Говорят (и я этому даже верю), что разработчики языка php, будучи не в силах заставить основную массу php-программистов писать качественный код, решили позаботиться о безопасности наших СУБД и ввели автоматическое добавление слэшей перед спецсимволами. Слэши добавляются на основании директив php.ini (magic_quotes_gpc и magic_quotes_runtime).

Директивы имеют общее название "волшебные кавычки", я же зову их “адские кавычки”. Действительно, в грамотно написанном приложении необходимость в автоматическом закавычивании отсутствует, более того: лишние кавычки мешают, и их приходится удалять.

Первая директива — magic_quotes_gpc — означает, что PHP автоматически добавляет слэши к данным, пришедшим от пользователя — из POST-, GET-запросов и cookies. Вторая переменная — magic_quotes_runtime — означает, что слэши добавляются к данным, полученным во время исполнения скрипта — например, из файла или базы данных. Так, некоторые функции, представляющие подобную информацию, выполняют ее закавычивание.

Если вы хотите отказаться от столь навязчивого сервиса, то либо вы (в той редкой и счастливой ситуации, когда вы полновластный владелец сервера) в файле php.ini отключаете эти конфигурационные переменные, либо (если вы, конечно, не размещаете сайт на бесплатном хостинге) вы можете внести изменения в файл .htaccess. Это файл, в котором находятся локальные — для одного каталога, а не для всего сервера — настройки apache. И добавьте в него следующие строки:


    php_flag magic_quotes_gpc 0
    php_flag magic_quotes_runtime 0

Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 2

Читайте в блоге

Полезные ссылки

Метки: .htaccess mysql php

Комментарии:

VarrkaN @ 19.03.2011 16:44

А что, на бесплатном хостинге от Holm.ru данный способ не прокатит? Я всё-же попробую, может и получится, ибо неправильно сконфигурировайнный файл .htaccess у меня приводил к внутренней ошибке сервера =)
VarrkaN @ 19.03.2011 16:48

Мда, проблема... Не прокатывает, внутренняя ошибка 500... А ведь проблема действительно серьёзная... Нету ли других способов решения данной проблемы?

Войдите на сайт, чтобы оставить комментарий