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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Инсеин
Отправлено: 04 Августа, 2011 - 15:12:52
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




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

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

P.S.: Пока вижу единственное решение ... это блокировать IP за частые запросы в короткий промежуток времени ... но хотелось бы обойтись без этого.


-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
SAD
Отправлено: 04 Августа, 2011 - 15:26:38
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




пишите время в переменную сессии например
 
 Top
Инсеин
Отправлено: 04 Августа, 2011 - 15:37:10
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




SAD пишет:
пишите время в переменную сессии например


Если честно то не совсем понял ... какая разница где хранить время ?
(Добавление)
Так как время всё равно при каждом запросе меняеться, а брать за точку отсчёта самое первое время тоже не вариант ибо как надо сохранить возможность повторного выполнения действия

(Отредактировано автором: 04 Августа, 2011 - 15:42:45)



-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
SAD
Отправлено: 04 Августа, 2011 - 16:14:10
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




в переменную пишите последнее время обновления. я думаю с сессии время быстрее считается или запишется
 
 Top
Инсеин
Отправлено: 04 Августа, 2011 - 16:48:41
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




SAD пишет:
я думаю с сессии время быстрее считается или запишется


Может конечно оно и так, но вот только если пользователь закроет браузер и в течении пары минут откроет ... возникнут проблемы )


-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
SAD
Отправлено: 04 Августа, 2011 - 16:51:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




для этого нужно увеличить время жизни сессии с помощью session_set_cookie_params(86400);
в частности тут на сутки установлена жизнеспособность сессии

(Отредактировано автором: 04 Августа, 2011 - 16:53:20)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB