Мы используем таблицу MySQL userIn
для обработки сессий.
Когда пользователь входит в систему, строка вставляется в userIn (userID, sessionID, date, IP)
И куки, хранящиеся на клиенте только с sessionID, с этим вы можете
- Удалить предыдущую открытую сессию того же пользователя
- Проверять IP при каждом вызове (если кто-то захватывает sessionID, он не может общаться от имени пользователя)
- Вы можете удалить строки из
userIn
, чтобы выйти из системы по времени (например, 8 часов или около того)
Как это работает:
Войти: INSERT INTO userIn SET userID='', sessionID='', date=NOW(), IP='$REMOTE_ADDR'
затем установите cookie: SetCookie("MySession", $sessionID);
На каждой странице загрузки: SELECT * FROM userIn WHERE sessionID='$_COOKIE[MySession]' AND IP='$REMOTE_ADDR'
(и при необходимости обновить дату в userIn
)