Как php-скрипт обрабатывает два PHPSESSID?

#php #session #sessionid

#php #сессия #sessionid

Вопрос:

Как php-скрипт обрабатывает переменные сеанса, если он получает два файла cookie с PHPSESSIDs? Заполняет ли он $ _SESSION переменными из первого PHPSESSID или из последнего? Или просто объединяет их?

Комментарии:

1. Попробуйте <?php echo SID; ?> и сравните отраженную строку со значениями cookie.

Ответ №1:

$_COOKIE — это ассоциативный массив, и значение файла cookie сеанса будет проанализировано с учетом этого, поэтому выигрывает последний. Однако, поскольку браузеры обновляют cookie-файлы при отправке заголовка «Set-Cookie» с сервера, единственной возможной причиной для этого, вероятно, является вмешательство на стороне клиента.

Комментарии:

1. Заголовок «Cookie» отправляется браузерами. Серверы отправляют заголовок «Set-Cookie».

2. @BINARYLV’s: вы действительно очень правы. Обновлено согласно комментарию.

Ответ №2:

Может быть только один активный сеанс. И это первый идентификатор сеанса, который был найден в либо $_COOKIE , $_GET либо $_POST это имя совпадает с текущим session.name значение.

Комментарии:

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

2. @AgentConundrum: Может быть несколько файлов cookie с разными областями действия. В настоящее время я не уверен, как браузеры справятся с этой ситуацией. Я думаю, они предпочли бы самый конкретный.

3. Он отправит, если один из них предназначен для .domain.com а другой предназначен для домена forum.domain.com — итак, открытие forum.domain.com браузер отправляет их оба