PHP REQUEST Session

Арендовал новый сервер и установил на Debian новый PHP 5.3.3-7+squeeze14 и тут возникла проблема PHP REQUEST не содержал в себе $_COOKIE.

Сразу скажу, что в своих проектах, где необходимо авторизовать пользователя, я пользуюсь старым добрым механизмом PHP сессий. На страницах которые требуется показывать как посетителям прошедшим авторизацию, так и нет, в самом начале кода применяю такую конструкцию:

if (isset($_REQUEST[session_name()])) session_start();

В этом случае, в отличии от простого вызова функции session_start(), сессия стартанет только если браузером был прислан идентификатор сессии. Т.е. например если посетитель ранее успешно залогинился, то на странице будут доступны сессионные переменные, а если нет то вообще говоря сессия не будет здесь активна.

Благодаря тому что сессия не запускается без разбору, немного снижается нагрузка на сервер и решается проблема появления в поисковиках адресов страниц с переменной PHPSESSID в конце.

Недавно в результате переустановки php на локальной машине сессии перестали работать. Более детальное изучение показало, что с ними все нормально, а все дело в том что глобальный массив $_REQUEST просто напросто пуст, вернее никаких сессионных переменных в нем нет. Глянув файл php.ini , я обнаружил строку:

request_order = "GP"

Значение "GP" параметра request_order говорит о том, что в массив $_REQUEST будут заноситься только $_GET или $_POST, получается если переменная передается через $_COOKIE, а в нашем случаем с PHPSESSID именно так и происходит, то она в массиве не будет доступна. Для того чтобы добавить в $_REQUEST переменные из $_COOKIE, изменим ее на:

request_order = "GPC"

Далее сохрате файл и перезапустите Apache и вуаля - всё заработает!

p.s. а еще можно писать букву S, что означает SESSION

И не забывайте про то, чтобы глобально были доступны GET + POST + COOKIE + SESSION:

variables_order = "GPCS"

Источники: 1 и 2

Оцени публикацию:
  • 1,5
Оценили человек: 1
Теги : PHP, REQUEST, Session, COOKIE

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »