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.SU

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


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

> Без описания
SAD
Отправлено: 05 Февраля, 2010 - 10:27:06
Post Id



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


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


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




Собственно то что есть:
есть кнопка , по нажатию которой вызывается таймер обратного отсчета. ну и тикает- тикает. но нерадивый пользователь берет и обновляет страницу. Собственно то, что нужно:
как после обновления страницы, после того как пользователь опять нажал на кнопку. отсчет начался с того времени,которое было у таймера,до произведенного обновления.
Начальное время таймера лежит в переменной.
 
 Top
EuGen Администратор
Отправлено: 05 Февраля, 2010 - 10:30:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Хранить начало отсчета на сервере, при обновлении сравнивать его с текущим временем, тем самым получая число прошедших секунд.
Инициализировать таймер этим значением прошедших секунд.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SAD
Отправлено: 05 Февраля, 2010 - 10:33:05
Post Id



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


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


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




Вот в чем проблема, по нажатию кнопки у меня вызывается функция javascript'овая , которая вызывает таймер на javascript, как мне время то загнать ,в этой функции, текущее на сервер - не получится?!

(Отредактировано автором: 05 Февраля, 2010 - 10:41:20)

 
 Top
EuGen Администратор
Отправлено: 05 Февраля, 2010 - 11:18:46
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Начальное время (время первоначального отсчета таймера) можете установить самим скриптом, а не js-функцией.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SAD
Отправлено: 05 Февраля, 2010 - 13:36:27
Post Id



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


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


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




Давайте так, у меня в переменной $time храниться время работы таймера(в секундах).
После нажатия на кнопку у меня будет время $time_a, которое мне нужно как то помнить, после обновления и нажатия на кнопку будет время $time_b.
Данные , которые будут предоставляться скрипту с таймером выглядят так: $time+$time_a-$time_b. Как мне запомнить время $time_a?
 
 Top
EuGen Администратор
Отправлено: 05 Февраля, 2010 - 13:52:36
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Можете в БД, можете в файл - как больше нравится


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 06 Февраля, 2010 - 01:46:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




SAD Если считать что пользователь на намерен взламывать вашу страницу то можно значение положить в cookie с помощью JS-функций для работы с ними - и таким образом презагрузка страницы не будет влиять на время отсчета
Если возможность подстановки cookie критична то хранить время отсчета на сервере и с помощью Iframe или AJAX получать даное время - то есть нажал пользователь на кнопочку и через AJAX оставшееся время отсчета для данного пользователь отправили на сервера - а по onload страницы проверяем нет ли уже для данного пользователя счетчика времени и если есть то продолжаем его и не реагируем более не кнопку пока время не истечет Данный способ плох если нужно отсчитывать по таймеру достаточно малые промежутки времени - ведь если интернет у пользователя медленный то все это AJAX-запросы будут занимать много времени
Существуют и другие способы основанные на JS и перехвате событий


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 06 Февраля, 2010 - 03:05:43
Post Id



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


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


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




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

Не спиться?))

(Отредактировано автором: 06 Февраля, 2010 - 03:28:31)

 
 Top
JustUserR
Отправлено: 06 Февраля, 2010 - 03:31:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




SAD пишет:
Спасибо за ответ, но как я узнаю в какой момент времени таймера я сделаю обновление страницы, что бы можно было, то значение запихнуть в куку?
Пожалуйста! На самом деле это узнать не сложно и ответ зависит от точности таймера - если время таймера большое и сильная точнсть не нужна то можно сохранять значение каждые 10 секунд к примеру Если же нужна большая точность то надо прибегать к средствам JS - например при перезагрузке генерируется событие onunload и можно попытаться успеть сохранить значение - если нужно сохранить значение чуть пораньше то можно использовать onreadystatechange и проверять начало выгрузки документа - существует вариант сохранять значение в window.hash документа то есть в адресоной строке после # но тут есть свои нюансы
SAD пишет:
Не спиться?))
Работать можно и ночью Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 06 Февраля, 2010 - 03:35:09
Post Id



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


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


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




JustUserR пишет:
Если же нужна большая точность то надо прибегать к средствам JS - например при перезагрузке генерируется событие onunload и можно попытаться успеть сохранить значение - если нужно сохранить значение чуть пораньше то можно использовать onreadystatechange и проверять начало выгрузки документа

а на примере это как будет выглядеть , хотя бы основные положения?
 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 00:38:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




SAD пишет:
А на примере это как будет выглядеть , хотя бы основные положения?
Самый просто метод это повесить событие на window.onunload и отменить данное событие с помощью установки event.cancelBubble=true и event.returnValue=false а также return false в конце функции обработчика - после этого выполняем действия по сохранению информации в cookie или с помощью запроса на сервер Iframe или AJAX и после этого продолжаем действие пользователя - перезагрузка или выход со страницы соответственно что можно определить по целевому window.location.href
Если не получится убрать событие window.onunload то проверять через короткий интервал времени не изменился ли readyState на выгрузку страницы и сделать действия по сохранию информации
Без обрабочки выхода со страницы впринципе тоже может получится но что в процессе выхода новые данные на сервер могут и не передаваться - поэтому надо подловить момент до выхода - как еще более простой вариант выход мыши за пределы окна (Рука тянется к крестику или меню Улыбка или нажитие на Alt (РУка тянется к Alt+F4 или меню Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 07 Февраля, 2010 - 13:49:14
Post Id



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


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


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




[удалить]

(Отредактировано автором: 07 Февраля, 2010 - 14:04:56)

 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 14:10:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




SAD пишет:
спасибо за совет, воспользовался печеньками, по событию OnunLoad, повесил функцию, которая записывает текущее время в куки.
Пожалуйста! Кстати существует еще одно интересное решение которое работает вообще без cookie и сохраняет информацию в других истоиниках - к примеру в query-строке URL-адреса и не дает его изменять Улыбка
SAD пишет:
if(!$test)
Может if(!$_COOKIE['test']) попробовать
SAD пишет:
Но лиса не реагирует на эту проверку
ИМХО а что с нее взять Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 07 Февраля, 2010 - 14:28:59
Post Id



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


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


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




JustUserR пишет:
Кстати существует еще одно интересное решение которое работает вообще без cookie и сохраняет информацию в других истоиниках - к примеру в query-строке URL-адреса и не дает его изменять

А можно поподробнее? )
 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 14:52:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




SAD пишет:
А можно поподробнее? )
Можно Улыбка В общем суть заключается в том что необходимо работать напрямую с window.location и соответственно query-строкой в нем - и каждый раз по событию onunload сохрянять туда свою инфорацию - и если пользователь решить подменить URL-адрес и данные в нем то страница начнет перезагрухаться и сработает установленное нами событие и в query-строку запишутся наши данные а не то что хотел ввести пользователь - но это работает только против перезагрузки страница а не против выхода где решениям являются cookie Также здесь надо проверять referer чтобы пользователь изначально не ввел в query-строку свои данные


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB