Вопрос по кукам и сессиям в php?

Сессия существует до закрытия браузера. Тут всё понятно, вопрос по сессии только такой:
1. Хеш сессии можно сохранить в БД
UPDATE `user` SET `session`=$session_hash WHERE `login`=$login
но зачем? Юзер браузер закрывает, в чём смысл оставшейся сессии в БД? Сайт на 1 сервере, т.е. не надо сессию между серверами таскать.

Далее при авторизации делаем куку, но по ней вопросы:
var_dump($_COOKIE); показывает:
array(2) {
  ["PHPSESSID"]=>
  string(26) "ma7emp7j7vp6o85oqlclefi315"
  ["namecookie"]=>
  string(5) "login"
}

Почему в переменной $_COOKIE хранится PHPSESSID а не в $_SESSION например?

Ну и вообще что хранить в cookie если каких-то индивидуальных настроек сайта типа цвета, стартового раздела у меня нет и вообще имеют ли они смысл? Может от них отказаться, безопасность юзеров повысится...
  • Вопрос задан
  • 670 просмотров
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Чем куки отличаются от сессии в PHP?

в дополнение:
- сессии просто можно хранить в базе и тогда хэндлинг сессий это ваша забота. Это удобно когда у нас несколько серверов и балансировщик раскидывает нас на разные сервера, тогда у нас есть единый центр сессий например. Для этих же целей можно использовать memcache или redis.
- сессии не обязательно умирают после закрытия браузера
Ответ написан
Stalker_RED
@Stalker_RED
Сессия существует до закрытия браузера. Тут всё понятно
Нет, сессия может существовать пока существует кука у пользователя (до закрытия браузера или до определенной даты, хоть через тыщу лет) и пока не истечет таймер на сервере. А таймер на сервере можно установить на 0, и не очищать сесси никогда.

Хеш сессии можно сохранить в БД ... но зачем?
Чтобы использовать одну сессию для нескольких серверов, например. Только наверное не хеш сессии а SESSIONID и собственно само содержимое сессии. Может еще "срок годности".

Ну и вообще что хранить в cookie если каких-то индивидуальных настроек сайта типа цвета, стартового раздела у меня нет и вообще имеют ли они смысл?
А никто вас и не заставляет использовать сессии и куки. Если нет авторизации, нет никаких пользовательских настроек, и нечего хранить в сессии - даже не вызывайте session_start().
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы