2013-06-24 5 views
0

Я новичок в php.Управление несколькими пользователями в php

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

$_SESSION['id']=****some value(say 3)******; 

и эта переменная сеанса сохраняется до тех пор, пока он не выйти (т.е. вы очищаете эту сессию переменная, использующая session_destroy).

Теперь у меня есть путаница в том, что если другой пользователь войдет в систему, будет ли эта переменная id быть перезаписана, что приведет к регистрации предыдущего пользователя? Если это так, то что я могу сделать, чтобы решить эту проблему?

ответ

0

Все сеансы привязаны к unique session ID. Обычно это устанавливается внутри файла cookie пользователя.

+0

: Так как сервер различает переменную сеанса id для каждого пользователя. Использует ли он куки для нее, автоматически отправляя ее пользователю, даже если мы не создали код для создания файлов cookie? –

1

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

Несмотря на то что $ _SESSION используется во всем коде, СОДЕРЖАНИЕ этого массива $ _SESSION привязаны к определенному пользователю через эту строку идентификатора. Это означает, что если я ударил ваш сайт, $ _SESSION будет содержать мои данные. Если вы нажмете на свой сайт, $ _SESSION будет содержать ваши данные.

Не должно быть практического способа, чтобы мои данные «утечки» в вашей сессии или наоборот. Уничтожение моей сессии не приведет к уничтожению вашего, потому что ваш - совершенно другой сеанс с другим идентификатором.

+0

: Спасибо, прекрасный ответ и очень легко понять. –