<rmcreative>

RSS

$_REQUEST — не только $_GET и $_POST

11 февраля 2011

Очень многие программисты, работающие с PHP, неверно полагают, что $_REQUEST = $_GET + $_POST. На самом деле это не так.

$_REQUEST = $_GET + $_POST + $_COOKIE. Причём, по умолчанию именно в этом порядке, что позволяет при использовании $_REQUEST перетирать значения $_GET или $_POST из одноимённой куки.

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

  1. №3891
    Рустам
    Рустам 11.02.2011, 19:59:43

    Ещё забыли $_SESSION ;) Кстати порядок устанавливается в ini параметром variables_order и по-умолчанию равно "GPCS" GET + POST + COOKIE + SESSION

  2. №3892
    tz-lom
    tz-lom 11.02.2011, 20:01:41

    на самом деле это не так за порядок и присутствие в суперглобалах отвечают variables_order и request_order (>=5.3.0) , некрофилы должны знать о gpc_order (<5.0) ну и конечно же соответственно документации request_order == 'GP' т.е. программисты резонно полагают что куки туда не вносятся,и они правы

  3. №3893
    Рустам
    Рустам 11.02.2011, 20:08:49

    tz-lom, спасибо, не знал. Но лично я считаю, что нужно явно указывать откуда пришли данные =)

  4. №3895
    Sam
    Sam 11.02.2011, 21:43:38

    Рустам, $_SESSION на $_REQUEST никак не влияет. variables_order и GPCS — это тоже чуть не в тему. Это про globals.

    tz-lom, как же резонно, если в 5.2 куки как раз попадают в $_REQUEST в конфигурации по умолчанию?

  5. №3897
    Ekstazi
    Ekstazi 11.02.2011, 22:07:46

    Наверное у многих денвер )

  6. №3899
    Sam
    Sam 12.02.2011, 1:30:39

    Ekstazi, а при чём тут денвер?

  7. №3900
    Ekstazi
    Ekstazi 12.02.2011, 11:22:04

    Я про то что кто-то пользуется денвером, кто-то xampp кто-то еще чем, и везде пхп по-разному настроен.

  8. №3925
    Сергей
    Сергей 16.02.2011, 4:13:40

    Единственный разумный совет который можно дать про $_REQUEST - не пользуйтесь им.

    Непременно напоритесь на коллизию имен

  9. №5855
    Asert
    Asert 08.02.2012, 22:27:41

    Всем спасибо за информацию, не как не мог понять почему сессия авторизации отваливается. Да здравствует @ini_set('variables_order','GP');

  10. №9876
    scruwi
    scruwi 05.07.2015, 17:21:48

    а почему у меня в $_REQUEST нет $_COOKIE, куда смотреть? Денвер-3, PHP 5.3.13

  11. №9877
    Sam
    Sam 06.07.2015, 16:43:28

    scruwi, в php.ini.

  12. №10384
    Дмитрий
    Дмитрий 23.03.2016, 17:45:31

    Добрый день. Не первый день борюсь с XAMPP. Не передает через _POST _GET нормально работает. Подскажите - что надо ковырять? Если кто-то в курсе )

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.