Как реализовать устойчивую систему от абуза показа страницы n-ое кол-во времени php + jquery?

Доброго времени суток!
Как реализовать абузоустойчивую систему показа страницы n-ое количество времени?

Если пользователь покинул вкладку браузера - сервер останавливает время. Только после накопления n секунд на странице показываем сообщение.

$(window).focus(function() { }); //Во вкладке
$(window).blur(function() { }); //Покинули вкладку


P.S.: Я запускал сессию, и каждую секунду плюсовал к ней. Но, если запустить обработчик времени напрямую, он добавляет секунды без показа страницы.

if( $_SESSION['timer'] >= $timeout )
    {
    	$_SESSION['timer'] = 0;

    	echo 'Good Work!';
    	
    } else {
    	$_SESSION['timer'] = $_SESSION['timer'] + 1;
    }


Буду очень благодарен любой помощи и светам!
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@thoalt Автор вопроса
Реализация: Создаем сессию ТАЙМЕР и приравниваем 0.
При действующем окне браузера, каждую секунду делаем запрос на обработчик и добавляем +1 сек к сессии ТАЙМЕР.

$(window).focus(function() {  AJAX запрос через  setInterval });


Сам обработчик:

if( isset( $_SESSION['timer'] ) AND $_SESSION['timer'] >= $timeout )
    {
    	$_SESSION['timer'] = 0;

    	echo 'Good Work!';
    } else {
    	$_SESSION['timer'] = $_SESSION['timer'] + 1;
    }


Может кому-то пригодится :) Всем спасибо за помощь!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы