2010-08-31 2 views
1

Я понимаю вещь $_SESSION, и я использую ее, но какой session_id действительно и что она дает? Я не понимаю, не могли бы вы дать мне руку? Спасибо.Что такое php session_id?

ответ

7

Ну, вам нужен небольшой урок по веб-технологиям в целом.

Протокол, который мы используем, называется HTTP, является stateless. Это означает, что он никогда не отслеживает запросы. Даже если вы нажмете несколько ссылок на сайте, каждый запрос будет новым, как будто предыдущих не было. Невозможно отличить запросы от одного и того же клиента.

Таким образом, если мы хотим отличить клиентов, мы должны как-то «пометить» их. Назначьте некоторый уникальный идентификатор и сделайте их отправкой с каждым запросом. Таким образом, ваш идентификатор сеанса - это знак. Когда вы начинаете сеанс в первый раз, cookie отправляется вместе с ответом сервера. Хороший клиент всегда отправляет все файлы cookie с каждым последующим запросом. Таким образом, мы можем признать этого клиента.

Бросьте файл на стороне сервера, названный в честь этого идентификатора сеанса, для хранения данных сеанса - и теперь у вас есть механизм сеанса!

+0

Да, я определенно нуждаюсь в этом, спасибо за ваш урок. –

6

session_id() возвращает значение cookie сеанса по имени, возвращенному с session_name(). session_id() обычно очень длинный хеш, который является уникальным клиенту.

PHP может внутренне осуществить установку куки клиента таким образом:

setcookie(session_name(), session_id()); 
0

Я рекомендую вам прочитать Session reference on php.net. Вы можете получить идентификатор сеанса с session_id(). Это значение генерируется PHP.

Смежные вопросы