Прочитав около 20 статей о сессиях, так и не понял для чего они нужны. На практике.
Разрабатываю веб-проекты на php около 3-4 лет и использую идентификацию посредством своих cookies, а также хранение данных в БД.
Механизм сессий, для меня выглядит странным и абсолютно ненужным.
Фактически вся суть механизма сессий сводится к записи одной куки PHPSESSID с уникальным идентификатором.
И далее служебный суперглобальный массив $_SESSION может быть заполнен любыми значениями. Для этого браузера он будет "ассоциироваться" с данной кукой - PHPSESSID.
Своего рода одна кука (ключ) у клиента, остальные "куки" на сервере. Доступ к ним по этой ключевой куке.
Почему для меня механизм сессий выглядит странным и абсолютно ненужным.
Возможный вариант (но так не делают).
--------------можно и не читать----------
Во первых всё это можно сделать используя куки. Все куки у клиента.
Ограничений нет. Максимальное кол-во кук около 2000. Пропускная способность интернета высокая, трафик почти безлимитный, кол-во информации в куках - почти ничего.
Можно так сделать. И это будет ничем не хуже сессий. Все то же, но на клиенте.
Это просто пример технической реализации. Я понимаю - безопасность.
Но её можно обеспечить https например, при передаче.
А хранение кук на клиенте и хранение этой же информации на сервере - это зависит от ПО/ОС клиента, настроек, ведь и сервер и клиент могут взломать. Это всего лишь 2 компьютера в сети.
------------
Как обычно я делаю.
Храню все данные, настройки пользователя в БД. Информация, которую нужно сохранить? Добро пожаловать в БД.)
Бд - это то, что создано для хранения данных. То, к чему можно быстро получить доступ, изменить и т.д.
Создаю одну уникальную куку для пользователя при авторизации.
Имя и пароль (хеши) верны? Ок - ты опознан. Получи куку.
Значение этой уникальной куки записывается (обновляется) в БД, "напротив" всех данных пользователя.
id-name-hash_pass-surname-unical_cookie
1-Федор-Sfr5ttrew-Иванов-sD56Jgffg9856Sdfg87656vfg
И теперь при каждом обращении php запрашивает эту куку. В БД найдена строка с этой кукой?
Да - значит мы можем предоставить пользователю его данные. Например вывести текст - привет Федор.
Собственно, зачем тогда сессии?
Может кто нибудь пояснить - для чего нужны сессии и привести пример?
У сессий только одно назначение - шаринг данных между запросами и различными компонентами.
Куки для этого не годятся по нескольким причинам:
1 и главная - куки будут доступны только после перезагрузки страницы.
2 ненужный трафик. это не смертельно, но только пока проект только для хомяков.
3 не секурно. можно конечно шифровать, но зачем?
4 куки не резиновые, у них есть лимит.
Максимальное кол-во кук около 2000.
---- Сколько всего может быть cookie?
dimonchik2013
кук и раньше могло быть уж точно больше 100, цифра в 2000 где-то встречалась,
а теперь и подавно
---
за что купил, за то и продаю )
Вы можете поправить его, но вас тоже могут поправить. Так и живем.
Многие фреймверки все продумали за вас как и где хранить сессию, вся ваша логика может работать почти из коробки и оттестирована множеством разработчиков и пользователей как в плане удобства так и в плане секьюрности