У меня есть простой сайт PHP / MySQL. Внутри есть одна страница, к которой должен обращаться только один пользователь:
Чтобы отслеживать, кто посещает эту страницу или нет, у меня есть таблица MYSQL со следующей структурой:
________________________________________
| ID | ID_User | Visit_TS |
|____|_________|_______________________|
| 1 | 20 | 2015-01-12 10:00:01 |
|____|_________|_______________________|
В этом случае страница в настоящее время посещается с идентификатором пользователя 20. Если любой другой пользователь пытается посетить ее, он не может этого сделать, поскольку пользователь 20 блокирует ее.
Если пользователь (с ID 20)
Затем таблица сбрасывается.
Тем не мение, если клиентский компьютер пользователя дает сбой, или если они делают грубое отключение, блокировка никогда не снимается (в этом случае пользователь не посещал другую страницу, и окно не выгружалось …)
В этом случае у меня тупик.
Теоретически, мы должны подождать, пока пользователь не вернется в онлайн и не посетит другую страницу или не закроет браузер — но это не способ решить проблему.
Как я могу решить эту проблему?
Должен ли я создать автоматический скрипт PHP, который периодически сбрасывает таблицу?
Задача ещё не решена.
Других решений пока нет …