С технической точки зрения в PHP есть встроенный механизм сессий (для борьбы с Альцгеймером), который позволяет автоматически (средствами PHP) записывать пользователю в cookie идентификатор сессии, а данные, относящиеся к этой сессии, хранить где-то у себя. Где именно - зависит от параметра session.save_handler, и по умолчанию это файлы. С файлами у нас сразу горсть проблем: К счастью, взрослые дядьки уже написали для нас другие методы хранения данных сессий. Например, модуль redis для PHP предоставляет нам возможность хранить данные в базе данных Redis. Это позволяет нам решить массу проблем одним махом (натурально, достаточно изменить session.save_handler и дописать параметры для соединения с Redis). К сожалению, тут опять есть небольшой нюанс, о котором следует знать. По умолчанию сессия в Redis не блокируется, поэтому одновременный доступ к данным может привести к их искажению или потере. На этот счет есть неплохая статья, показывающая как люди это обходят. Проблема хранения сесси