управление сессиями php - PullRequest
       1

управление сессиями php

0 голосов
/ 24 октября 2010

Я занимаюсь разработкой системы на php, в которой есть разные типы пользователей, такие как admin, A, B, C.

Мне нужно разрешить вход только одному пользователю из данного типа за раз.Означает 1) если уже зарегистрирован пользователь с правами администратора, ни один другой пользователь с правами администратора не может войти в систему. 2) И учетные данные, которые зарегистрированы, не могут быть использованы на другом компьютере в одно и то же время (так же, как система входа в Yahoo Messenger).

Я пытался сохранить сеанс со временем выхода из системы в таблице базы данных, когда кто-то входит в систему и выходит из нее.Но это создает проблему, когда кто-то закрывает браузер, не выходя из системы, время входа в систему отсутствует.

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Вы всегда можете установить очень короткое время истечения сеанса (скажем, 60 секунд) и использовать обратную передачу Ajax на каждой странице с тайм-аутом, скажем, 25 секунд, чтобы поддержать сеанс.Вот как Facebook узнает, если вы «онлайн» для их фейсбука IM

0 голосов
/ 24 октября 2010

1) если уже есть пользователь с правами администратора, ни один другой пользователь с правами администратора не может войти.

If you want to stop multiple logins from same system, затем установите флаг сеанса, например $ _SESSION ['loggedin«] = TRUE;при успешном входе в систему проверяйте этот флаг перед каждой попыткой входа в систему, и только в том случае, если этот флаг ложно обрабатывается при входе в систему.

If you want to stop multiple logins from multiple system, а затем создайте временную таблицу в вашей базе данных для хранения статусаваши вошедшие в систему пользователи и до того, как будут предприняты какие-либо попытки входа в систему, проверьте эту таблицу, чтобы найти любого вошедшего в систему пользователя, если вы не нашли ни одного пользователя, то только продолжайте, или же предложите пользователю

2)учетные данные нельзя использовать на другом компьютере одновременно (так же, как в системе входа в Yahoo Messenger).

создайте временную таблицу в вашей базе данных, которая будет содержать статус всех ваших зарегистрированных пользователей,затем, когда пользователь, который уже вошел в систему, пытается войти в систему из другого места, проверьте состояние этого идентификатора пользователя во временной таблице, если он уже найден вошедшим в систему, либо предложите ему, либо откажитесь от него, либо выйдите из него сдругой компьютер, прежде чем снова войти в него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...