что такое идентификатор сессии?в php идентификатор сессии назначается каждому пользователю или каждому браузеру - PullRequest
0 голосов
/ 24 января 2012

Я действительно запутался в сессиях на php. Я занимаюсь веб-сайтом. Это мой первый проект, и я застрял в системе регистрации пользователей. Я не могу понять, как работают php-сессии, являются ли эти идентификаторы сессии уникальными для каждого пользователя или уникальными для каждого браузера

вот моя проблема

при входе в систему с использованием имени пользователя и пароля для user1 я запускаю новый сеанс и создаю уникальный идентификатор сеанса, скажем, phpssesid XXXXXXXXXXXXXXXX, поэтому при выходе из user1 я уничтожаю сеанс и идентификатор сеанса XXXXXXXXXXXXXXXX, созданный во время входа в систему для user1, удаляется из временная папка затем я вхожу, используя user2 и пароль, снова создается новый сеанс, но я получаю тот же идентификатор сеанса, т. е. XXXXXXXXXXXXXXXX, который был сгенерирован при первом входе в систему. Я не понимаю, как пользователям назначается один и тот же идентификатор сеанса двум разным пользователям

все это, пока я использовал Google Chrome для просмотра

но затем я использовал firefox для входа в систему, используя user1 и пароль, но на этот раз создается новый идентификатор сеанса, т. Е. XXXXXXXXXXXXXXX1 den i: выход из системы и повторный вход в систему с использованием user2, и снова идентификатор сеанса, назначенный для user2, совпадает с XXXXXXXXXXXXXXX1

Я не понимаю всего этого, если идентификатор sesssion уникален для каждого пользователя, тогда почему один и тот же идентификатор сессии назначается двум разным пользователям в одном браузере

1 Ответ

1 голос
/ 24 января 2012

Не могу особо сказать о PHP, но сам по себе HTTP не имеет состояния - т.е., если вы делаете тот же запрос, вы (должны) получить тот же ответ.PHP и многие другие языки используют идентификаторы сеансов, иногда хранящиеся в файлах cookie, а иногда и в URL.

Короче говоря, ваш идентификатор сессии должен быть уникальным для каждого пользователя для каждого браузера.Например, если Алиса входит в систему на своем домашнем компьютере, а затем на своем рабочем компьютере, идентификаторы сеансов должны отличаться.Если Алиса затем выходит из своего домашнего компьютера, а Боб входит (тот же компьютер, тот же браузер, что и при первом входе Алисы), он все равно должен получить другой идентификатор сеанса - все это сделано для того, чтобы ваша структура (например, PHP) могла отслеживать «сеансы»использования сайта.

В вашем случае дублированные идентификаторы сеанса могут быть связаны с сохраняющимися файлами cookie, проблемами с сервером или PHP может законно использовать один идентификатор (возможно, из-за соображений производительности).Если вы не изменили большую часть кода сеанса, скорее всего, это проблемы с файлами cookie в браузере или повторное использование идентификатора.

...