magic_quotes_gpc

Ashotovich

Новичок
magic_quotes_gpc

Всем привет.
В некоторых источниках (в том числе и в FAQ) я нашел фразы о том, что разработчики рекомендуют отключить magic_quotes_gpc в php.ini и добавлять слеши "вручную": addslashes($string) или даже mysql_escape_chars($string). Вопрос - почему так? Что, бывают ситуации, когда magic_quotes работают некорректно по сравнению с вышеприведенными функциями?
 

Crazy

Developer
Только что обсуждалось: как ты будешь выполнять, к примеру, контроль длины строки перед записью в базу?
 

Ashotovich

Новичок
Хм... Что-то такое припоминаю, но тред найти не могу. Ну да ладно, найдется.
Контроль длины строки можно же осуществлять в форме. Ставлю maxlength=*** и все, вроде... Строки у меня в базу кладутся без изысков, прямо из формы (осуществляется проверка всего $_POST на наличие запрещенных символов). Для чего может пригодиться контроль над длиной строки, ежели сама длина ограничена в форме?
 

Crazy

Developer
Автор оригинала: Ashotovich
Контроль длины строки можно же осуществлять в форме. Ставлю maxlength=*** и все, вроде...
JFYI: у textarea нет атрибута maxlength.

Строки у меня в базу кладутся без изысков, прямо из формы (осуществляется проверка всего $_POST на наличие запрещенных символов).
Hint: упомянутые тобой "источники" пишут не только о столь тривиальных случаях.
 

Ashotovich

Новичок
Textarea у меня не встречается.

Хех. Ну естественно, что я спрашивал не их чисто теоретических побуждений. ;) Посему и пытаюсь выяснить - нужно ли в моем случае оставить magic_quotes_gpc=off, или не париться, а доверить расстановку слешей серверу.
 

Crazy

Developer
Брат, ты русскай языка знаищь? Вапросы типа задавать нармално могиш, да? Мы чаго -- далжны угадавыть, чиго ты на самам дели хатель, кагда топик аткрывал?
 

Ashotovich

Новичок
Это был намек на мой ник, который есть отчество? Если да, ты, уважаемый, несколько неточно сымитыровал армянский акцент. Впрочем, чтобы передать на клавиатуре гортанные звуки армянского акцента, нужно сильно постараться.

А вопрос первоначально я задавал для улучшения знаний о PHP вообще, а как бонус - применимо к моим задачам. И к цели сей продолжаю стремиться, не сворачивая. Так что незачем на меня сердиться, в треде происходит обычный переход от общего к частному. Посему, если уважаемому гуру не трудно, а также он не занят медитацией, сопровождаемой созерцанием собственного пупка, прошу ответить на мой предыдущий вопрос.
 

Crazy

Developer
Автор оригинала: Ashotovich
Это был намек на мой ник, который есть отчество?
Это намек на неграмотную постановку вопроса. Точнее -- удачная попытка создать текст, вызывающий столь же явственную реакцию отторжения, как и твой способ описания своих проблем. :)

Если да, ты, уважаемый, несколько неточно сымитыровал армянский акцент.
О! Если поставлю себе такую цель, то обязательно обращусь к тебе за консультацией по правильному акценту. :D

Так что незачем на меня сердиться, в треде происходит обычный переход от общего к частному.
Никто не сердится. Просто лично я прихожу к выводу, что к списку лиц, чьи топики нет смысла читать, может добавиться еще одно имя. :)

Посему, если уважаемому гуру не трудно, а также он не занят медитацией, сопровождаемой созерцанием собственного пупка, прошу ответить на мой предыдущий вопрос.
Чтобы понять, нужно ли в твоем случае использовать те или иные приемы, нужно быть знакомым с твоим случаем. Поскольку исходников ты не показываешь, а реальную информацию приходится тянуть клещами, то я вижу только один выход: продолжать медитировать, созерцая собственый пупок, пока не разовьются телепатические способности.

P.S. Забавно. Я думал, что это фамилия. :)
 

Ashotovich

Новичок
Попробую просуммировать "реальную информацию" о своей задаче, просто скомпилировав ее из предыдущих постов:
  • строки у меня в базу кладутся без изысков, прямо из формы (осуществляется проверка всего $_POST на наличие запрещенных символов)
  • textarea у меня не встречается
Что еще добавить? Думаю, что выкладывать сюда для изучения 150 Кб уже написанного кода не имеет смысла. Да, поля в форме - самые простые: text и select, то бишь если в первом можно чего-нибудь накосячить, что во втором - врядли.
 

Crazy

Developer
Отвечаю на твой вопрос: да, в природе существуют случаи, когда magic_quotes_gpc можно выставить в "on". :)
 

Ashotovich

Новичок
:D ЧТД. ;)

Собственно, для придания скриптам универсальности, как и написано в FAQ, лучше все же написать функцию, подобную этой:
PHP:
function adds($string)
{
   if (!get_magic_quotes_gpc()) return mysql_escape_string($string);
   else return $string; 
}
и пропускать через нее каждую тесктовую переменную, вытянутую из $_POST или $_GET. Кто его знает - выделит ли руководство денег на покупку своего серванта и размещение его на М9? Так что если придется где-то хоститься, не понадобится все скрипты перелопачивать.

Спасибо за помощь. ;)
 

Crazy

Developer
Существует куда более примитивный способ: в начале скрипта проверить настройки и привести все параметры в $_POST/$_GET к нужному виду.
 
Сверху