Какое PHP-приложение мне создать?

  • Автор темы anyanov
  • Дата начала

ONK

Пассивист PHPСluba
Автор оригинала: Фанат
скорее, ты просто не понял его.
Он имеет в виду " замечание" из фака.

поясни, что ты имеешь в виду.
Он имел ввиду точно не это.

Я его фразу телепатирую так:

PHP:
$sVar = stripslashes($_POST['var_name']);
....
$SQL = ".... .... = '".addslashes($sVar)."'";
Так вот этот код не корректен.
 

Фанат

oncle terrible
Команда форума
Ты про unconditional stripslashes?
Тогда ты ошибаешься, проверка на автоматическое добавление им подразумевается.
Дело в том, что он упоминает функцию из фака, которая так и применяется - после проверки.
Кстати, функцию подправить надоть...

Но ты прав в том, что на форуме подразумевания не проходят.
Надо все разжевывать четко и ясно...
 

ONK

Пассивист PHPСluba
Вижу, не читал я фак. ;)

Функцию ндо поправить это 1.
А второе это то, что приведённую в факе процедуру:
PHP:
if (get_magic_quotes_gpc()) strips($GLOBALS);
(незнаю кто её придумал), следует признать вредной, т.к. она при некоторых условиях, повреждает значения служебных переменных (это очень ярко видно под виндами с переменными содержащими пути файловой системы).
 

Фанат

oncle terrible
Команда форума
Да, пожалуй, следует...

А есть идеи, как убрать слеши из глобальных переменных?
 

SiMM

Новичок
Фанат, поскольку magic_quotes_gpc, насколько я могу судить из php.ini, действует только на массивы $_GET, $_POST и $_COOKIE, то может разумнее только их и стрипать?
PHP:
if (get_magic_quotes_gpc()){
  strips($_GET);
  strips($_POST);
  strips($_COOKIE);
}
Массивы $_FILES, $_SESSION и $_SERVER, я так понимаю, затрагиваться не должны? Впрочем, надо проверить ;)
 

Фанат

oncle terrible
Команда форума
вопрос в gregister_globals. вся эта дурь затевалась, ведь, ради них онли.
Как-то хочется и глобальные пощупать.
Или забить и сказать жестко, что глобалсы должны быть офф - и нефиг?

поскольку magic_quotes_gpc, насколько я могу судить из php.ini, действует только на массивы $_GET, $_POST и $_COOKIE
есть исключения :)
$_SERVER['PHP_AUTH_*'] ;-)

-~{}~ 14.11.04 14:02:

Попроавил, заодно, одно место в сессиях...
Про поисковики, похоже, я гнал слишком...
 

Profic

just Profic (PHP5 BetaTeam)
Фанат
Есть идея (насчет "вопрос в register_globals")
при проходе по $(_GET|_POST|_COOKIES) проверять есть ли такой элемент в $GLOBALS, и если есть то его менять на такой из оригинального массива.
 

ONK

Пассивист PHPСluba
Profic, что-то я тебя не понял ;) зачем что-то заменять, если $GLOBALS это массив ссылок.

Я сторонник индивидуальной обработки полученых данных.
У меня в API есть абстрактный класс с методами обработки входных данных, работа которых зависит от get_magic_quotes_gpc().
Я не люблю делать лишних движений, 90% генерируемых страниц у меня требуют только целочисленных параметров. Зачем мне прогонять через фильры всё что есть, когда можно обойтись одним intval() прменённым к соотвествующему параметру.
Подход к работе со строковыми параметрами следующий:
Приводим строку к первоначальному виду, введёному пользователем, обрабатываем необходимыми процедурами (проверки, преобразования), при работе с базой пользуем addslashes() (или специализированной процедурой экранирования из API базы данных).
 

Фанат

oncle terrible
Команда форума
Profic
да, это мне тоже в голову зашло.
только проходить надо по реквесту, наверное........
То есть, получается что-то вроде такого.

ONK
Ты пойми, твой апи - правильный.
Обсуждается-то не правильный подход, а затычка на случай, если у провайдера зашита волшебная кавычка, а ты ее не можешь изменить.
 

ONK

Пассивист PHPСluba
Я бы сказал что в ПХП (из-за проблемы с "волшебным экранированием") нехватает ещё одного суперглобального массива $_HEADERS ...
 
Сверху