|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alexander Kostiuchenko 2:463/672.419 01 Oct 2004 03:24:07 To : Alexey Gradovtsev Subject : PHP Sux (Was: Вопросец) --------------------------------------------------------------------------------
Как-то раз (а точнее 26 Sep 04 в 16:17) Alexey Gradovtsev писал(а) к Alexander
Kostiuchenko:
AG> 2. После небольшого опыта общения с пхп вырабатываются несколько
AG> правил, облегчающих жизнь. Достаточно понять, что пхп3 безнадежно
AG> устарел, что register_globals - зло (как и magic_quotes, которое
AG> непонятно к чему было упомянуто), и его надо отключать, ну и т.д.
AG> Тогда можно будет расслабиться и действовать в соответствии с докой:
Отказаться от register_globals - не проблема. Как и от поддержки php3. Только
легче от этого не становится. Т.к. есть еще 4.0.x, в которых нет superglobals.
Итого, остается только один портабельный способ доступа к параметрам запроса -
$HTTP_x_VARS. И хорошо бы, только, блин, в PHP5.x они и это умудрились сломать
(register_long_variables или как-то так, по-дефолту off) ! Я уж не помню,
является ли эта опция server-wide, но это не важно, т.к. в PHP есть еще одна,
которая точно server-wide и существование которой делает по сути невозможным
использование встроенных механизмов работы с данными запроса. Это то самое
magic_quotes, которое "непонятно к чему". Поясню: чтобы быть уверенным, что ты
получил именно то значение, которые тебе передавали из формы, нужно вызвать
get_magic_quotes_gpc() и, в зависимости от результата выполнения, пройтись (или
не пройтись) по полученным данным stripslashes(). И надеяться, что у тебя не
будет случая, когда где-то по коду была попытка сделать ini_set magic_quotes...
off (мне вот такое попадалось), поскольку проверка get_magic...() после этого
будет возвращать off, хотя квотинг по прежнему будет происходить. Или вот опять
же пришлось столкнуться - file_uploads = Off в некоторых версиях PHP4 отключает
не только загрузку файлов, но и получение вообще каких-либо параметров,
переданных из формы в mutipart/form-data. Такие вот кошмары... Совершенно не
хочется раздувать флейм на эту тему, но твое "сделай так и можно расслабиться"
выглядит малость нереальным в реальной жизни (где даже в случае выделенного
сервера, где ты имееешь возможность менять server-wide настройки, сайт на PHP
вполне может завалиться после планового апдейта софта (с 4.3.x на 5.x), я уж не
говорю о более распространенном случае shared-хостинга или о "коробочных"
продуктах, которые должны уметь работать везде, где есть PHP4).
--
mailto: random at binet.kiev.ua //Александр
---
* Origin: useless (2:463/672.419)
Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/4029415ccdfc.html, оценка из 5, голосов 10
|