Я бы хотел, чтобы мой сайт разрешал только один сеанс за раз. Например, допустим, что пользователь имеет логин на моем сайте в firefox, если пользователь снова войдет в другой браузер, например, опера на одном компьютере или другом компьютере, сеанс на firefox будет уничтожен. Однако сессия по firefox осталась, если она осталась как один сеанс. Могу ли я узнать, как я могу это сделать? Я использую php и apache. Спасибо.
С уважением. Вениамин
Я предлагаю вам сделать что-то вроде этого:
Предположим, что пользователь «A» впервые входит в «Com_1». Сохраните уникальный код в базе данных против этого сеанса, а также с сеансом пользователя.
В то же время, если он (пользователь «А») снова войдет в «com_2», проверьте его статус в базе данных и обновите уникальный код в базе данных.
еще раз, если тот же пользователь (пользователь «A») обновляет страницу на «com_1», нам все, что вам нужно сделать, это проверить уникальный код из сеанса и сопоставить его с базой данных, это точно не будет соответствовать, тогда выйдите из системы и уничтожьте сеанс.
Для сохранения пользователя в журнале, даже если браузер закрыт, вы можете сохранить файл cookie в браузере и повторно сгенерировать сессию в соответствии с этим.
Надеюсь это поможет. Спасибо.
Вы можете использовать следующий алгоритм
invalidate()
сеанс и уменьшите значение в базе данных Кредиты для Божо, потому что он опубликовал это, отвечая на вопрос здесь
Храните центральную таблицу базы данных или текстовый файл того, кто вошел в систему в настоящий момент. Если пользователь уже вошел в систему в другом сеансе, аннулируйте этот сеанс, установив флаг «logged in» в false.
Я думаю, вам придется сделать что-то вроде этого:
Сохраните IP-адреса пользователей IP => SESSION_ID в базе данных. Когда пользователь пытается загрузить вашу страницу, вы должны сравнить фактическую пару IP => SESSION_ID, а затем разрешить / запретить, если пара в порядке / отличается.