наверх

Сессии в PHP

Сессии в PHP представляют собой способы сохранения данных для дальнейшего доступа к ним. Чем они отличаются от cooke? В сессиях отсутствует ограничение на количество сохраняемой в них информации. Сессии хранятся на стороне сервера. Так же информацию из cooke намного проще украсть используя уязвимости браузеров или получив доступ к личному компьютеру жертвы. По этому, если вы собираетесь делать функционал который будет хранить учетные данные пользователя (например форму входа в личный кабинет), то лучше использовать сессии.

Принцып работы сессий

Механизм работы сессий присваивает каждому посетителю уникальный идентификатор сессии, SessionID. Для того, чтобы этот идентификатор был доступен при каждом запуске сценария, PHP помещает его в куки браузера. Зная идентификатор, PHP сможет определить в каком файле на диске хранятся данные пользователя.

Данные сессии хранятся в глобальном массиве $_SESSION. При завершении сеанса, PHP автоматически сохраняет этот массив во временном хранилище, имя которого храниться в идентификаторе сессии. Поместив в этот массив данные, можно быть уверенным, в том что при следующем запуске сеанса тем же пользователем массив $_SESSION получит то же самое значение, которое было у него при предыдущем запуске программы.

Как начать сессию? Функция session_start()

Для того чтобы начать сессию, используют функцию для этого существует функция session_start(). Эта функция создает сессию.

Обратите внимание, что данную функцию лучше вызывать таким образом, чтобы до нее не было никакого вывода в браузер — иначе PHP не сможет установить идентификатор сессии для пользователя (SessionID обычно храниться в куках, которые должны быть установлены до любого оператора вывода).

Уничтожение сессии

Для того чтобы уничтожить  хранилище сессии, следует воспользоваться функцией session_destroy() .

Обратите внимание, что после использования данной функции глобальный массив $_SESSION не очищается.

Для того чтобы очистить массив следует удалить данные сессии для текущего сценария и удалить куки соответствующую SID:

После этих не хитрых манипуляций, все страницы использующие данное хранилище, получат пустую сессию. Скрипты «логаутов» обычно используют именно такую последовательность команд.