Добрый день коллеги! Подскажите пожалуйста, в какой ситуации функция «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
входные данные-то у неё какие? её задача скомпозировать из входного массива данные согласно рфц протокола передачи гипертекста. если во входном массиве явно указана сессия - на выходе тоже будет. потому что к примеру вы можете строить запрос не к своему сайту и тогда какую логику будет иметь идентификатор сессии вашего ресурса на целевом сайте? правильно, никакой.
В браузере такой совершенно простой URL: test.ru/home?action=go далее я беру и делаю так: Код (Text): echo http_build_query( $_REQUEST ); // или так 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
$_GET и $_REQUEST это разные вещи. $_REQUEST - Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE. поэтому наличие там PHPSESSID неудивительно, ибо оно лежит в $_COOKIE. а вот для $_GET, такого быть по идее не должно Добавлено спустя 1 минуту 29 секунд: сделать var_dump($_GET); и var_dump($_REQUEST); и станет ясно что там лежит на самом деле