За последние 24 часа нас посетили 17609 программистов и 1652 робота. Сейчас ищут 867 программистов ...

непонятка с функцией "http_build_query"

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ofigenski, 24 ноя 2014.

  1. Ofigenski

    Ofigenski Новичок

    С нами с:
    24 ноя 2014
    Сообщения:
    3
    Симпатии:
    0
    Добрый день коллеги!

    Подскажите пожалуйста, в какой ситуации функция «http_build_query»
    вместо
    test.ru/home?action=go
    возвращает
    test.ru/home?action=go&PHPSESSID=9e6909fa1c158e617daf0d687cf098c8

    т.е. подставляет сессию! И огромная просьба НЕ пишите фразы типа "оно и так работает, забей"!

    При этом:
    Свой VPS ( арендуемый ). В корне WWW просто один файл index.php и ВСЕ.

    Вызов phpinfo() показывает это (Local Value/ Master Value значения одинаковые):
    session.use_cookies On
    session.use_only_cookies On
    session.use_strict_mode Off
    session.use_trans_sid 0
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    входные данные-то у неё какие? её задача скомпозировать из входного массива данные согласно рфц протокола передачи гипертекста.
    если во входном массиве явно указана сессия - на выходе тоже будет. потому что к примеру вы можете строить запрос не к своему сайту и тогда какую логику будет иметь идентификатор сессии вашего ресурса на целевом сайте? правильно, никакой.
     
  3. Ofigenski

    Ofigenski Новичок

    С нами с:
    24 ноя 2014
    Сообщения:
    3
    Симпатии:
    0
    В браузере такой совершенно простой URL: test.ru/home?action=go

    далее я беру и делаю так:
    Код (Text):
    1.  
    2. echo http_build_query( $_REQUEST );
    3. // или так
    4. echo http_build_query( $_GET );
    И вместо
    test.ru/home?action=go
    получаю
    test.ru/home?action=go&PHPSESSID=9e6909fa1c158e617daf0d687cf098c8

    тут даже близко про это ничего нет - http://php.ru/manual/function.http-build-query.html
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    $_GET и $_REQUEST это разные вещи.

    $_REQUEST - Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.
    поэтому наличие там PHPSESSID неудивительно, ибо оно лежит в $_COOKIE.

    а вот для $_GET, такого быть по идее не должно

    Добавлено спустя 1 минуту 29 секунд:
    сделать
    var_dump($_GET);
    и
    var_dump($_REQUEST);
    и станет ясно что там лежит на самом деле
     
  5. Ofigenski

    Ofigenski Новичок

    С нами с:
    24 ноя 2014
    Сообщения:
    3
    Симпатии:
    0
    Все "перегорел"!!! Пора в отпуск...
    Ошибка новичка, основа основ.
    Спасибо runcore! Стыд и позор мне.