Xwab
Форумыnavigate_nextПрограммирование на PHP

SESSION & COOKIE
Сообщения
EmptyZero

Скажите пожалуйста, зачем хранить идентификатор сессии в куках?
Просто не пойму, как потом работать с идентификатором..

24 Апр 2012, 19:58
Okula

Потому что сессия "умирает" быстрее кук. На самом деле хранится не идантификатор сесии, а хеш, который генерируется для конкретного сеанса авторезированного пользователя. И уже по двум значениям: 1) хеш из кук и 2) хеш из базы данных проверяется аторезирован ли пользователь.

24 Апр 2012, 20:24
EmptyZero

Можно пожалуйста поподробней про реализацию

24 Апр 2012, 20:50
Okula

А что именно непонятно? Генерируешь хеш, пишешь его в базу и куки, а потом сравниваешь их при проверки пользователя на авторизованность.

24 Апр 2012, 20:52
san

Okula, шо? О_о. Какой хэш?
EmptyZero, а как ты узнаешь какая сессия принадлежит пользователю который зашел на сайт?  По значению session id, которое берется из кукисов или же из ссылки(что очень плохо), в зависимости от хранилища сессий php ищет файл с таким именем или же запись в базе с таким ключем. Тебе идентификатор сессий вообще не нужен. Его обработка происходит в автоматическом режиме.

24 Апр 2012, 21:17
Okula

san пишет:
"Okula, шо? О_о. Какой хэш?"

Генерируемый скриптом. Если хранить авторизацию только в сессиях то она будет слетать быстро.

24 Апр 2012, 21:30
EmptyZero

Вот я именно не знаю, как имея session id присвоить (если он утерян) пользователю, чтобы вернуть данные авторизации
добавлено спустя 2 минуты:
Я думал, что может как-то так:
if (!session_id()) {
session_id() = $_cookie('sess_id');
}
// в $_cookie('sess_id') хранится идентификатор сессии
Правильно?
добавлено спустя 2 минуты:
А что будет если мы подменим идентификатор сессии в куках?

24 Апр 2012, 22:10
oee

EmptyZero, войдем как другой пользователь.. если конечно сессия такая существует

25 Апр 2012, 7:11
Ответить на тему