#php #session #codeigniter #multiple-users
#php #сеанс #codeigniter #несколько пользователей
Вопрос:
Я полагаю, что это должно быть возможно, поскольку это требование, заданное моим руководителем. Существует несколько типов учетных записей, одна из них — учетная запись «компании», которая должна позволять всем сотрудникам компании, имеющим эти учетные данные, входить в систему одновременно.
Теперь мой вопрос в том, как мне хранить временные данные, такие как: (это фиктивно) корзины покупок, отслеживание мастеров,… Я полагаю, что мне придется сохранить это в базе данных? Какой был бы мой лучший вариант. Связать это с уникальным идентификатором сеанса?
Ответ №1:
Да, вы можете хранить сеансы в своей базе данных, если хотите. Хороший способ сделать это — создать таблицу, подобную сеансам, которая хранит состояния. Поэтому, если у вас есть корзина, вы можете создать таблицу корзины, которая представляет, какие товары есть в корзине, и воспроизвести ее после повторного входа пользователя в систему.
Ответ №2:
Информация о сеансе основана не на вашей учетной системе, а на системе посетителя (cookie). Если вы не хотите, чтобы вся информация была доступна всем пользователям, вошедшим в учетную запись компании (в чем я сомневаюсь), вам не нужно хранить какую-либо информацию в базе данных.
Для хранения данных вы можете просто продолжать использовать session (как, я полагаю, вы уже делаете для «обычной» учетной записи.
Комментарии:
1. На самом деле, первое утверждение неверно. Если бы сеансы были основаны на клиенте, это было бы очень, очень плохо для безопасности 🙂 Сеансы генерируются с сервера. Кроме того, сеанс не является постоянным, как база данных, поэтому срок его действия истекает. Вот почему иногда требуется база данных.
2. каждый сеанс уникален и не может быть общим для «всех пользователей»