Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по поводу счётчика на PHP
Форумы портала PHP.SU » » Вопросы новичков » Вопрос по поводу счётчика на PHP

Страниц (1): [1]
 

1. Инсеин - 04 Августа, 2011 - 15:12:52 - перейти к сообщению
Возникла необходимость сделать счётчик именно на стороне сервера (по сему JS не подходит)... принцип его работы заключается в следующем ... пользователь обновляет страницу ... ну или переходит на другую ... идёт проверка сколько прошло времени с последнего обновления или перехода и в зависимости от того сколько прошло времени происходит определённое действие.
Сам счётчик написал и работает отлично. Просто пишу время в БД и при переходе (обновлении) получаю текущее время и считаю разницу ... в общем всё просто. Но когда начал тестировать то понял, что если проходит от последнего перехода (обновления) 1-2 секунды, то ничего не должно происходить (так и задумано), но если вдруг найдёться ... скажем так "странный" пользователь которому будет интерестно каждую секунду обновлять страницу, то в БД время будет тоже обновляться каждую секунду и это уже плохо. Так как счётчик включаеться после определённого события и в течении некоторого времени выполняет последовательно несколько действий. Но у такого "странного" пользователя не будет выполняться вообще ничего ... пусть хоть сутки пройдут ))

Ну и сам вопрос ... возможно ли сделать, так чтобы не смотря на частые обновления счётчик всё равно запускал все события как положенно ? И в какую сторону копать, чтобы решить данную задачу ? )

P.S.: Пока вижу единственное решение ... это блокировать IP за частые запросы в короткий промежуток времени ... но хотелось бы обойтись без этого.
2. SAD - 04 Августа, 2011 - 15:26:38 - перейти к сообщению
пишите время в переменную сессии например
3. Инсеин - 04 Августа, 2011 - 15:37:10 - перейти к сообщению
SAD пишет:
пишите время в переменную сессии например


Если честно то не совсем понял ... какая разница где хранить время ?
(Добавление)
Так как время всё равно при каждом запросе меняеться, а брать за точку отсчёта самое первое время тоже не вариант ибо как надо сохранить возможность повторного выполнения действия
4. SAD - 04 Августа, 2011 - 16:14:10 - перейти к сообщению
в переменную пишите последнее время обновления. я думаю с сессии время быстрее считается или запишется
5. Инсеин - 04 Августа, 2011 - 16:48:41 - перейти к сообщению
SAD пишет:
я думаю с сессии время быстрее считается или запишется


Может конечно оно и так, но вот только если пользователь закроет браузер и в течении пары минут откроет ... возникнут проблемы )
6. SAD - 04 Августа, 2011 - 16:51:07 - перейти к сообщению
для этого нужно увеличить время жизни сессии с помощью session_set_cookie_params(86400);
в частности тут на сутки установлена жизнеспособность сессии

 

Powered by ExBB FM 1.0 RC1