Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
#1

Что делать если таймер сбрасывается при обновлении страницы - PHP

26.12.2017, 22:27. Просмотров 296. Ответов 16

Доброго времени суток! У меня такая проблема. На сайте есть таймер, но проблема в том, что при обновлении страницы или переходе на другую таймер начинает отчёт самого начала. Как быть? Занести эти данные в сессию, но тогда при закрытии браузера сессия обнулится. Может как-то через куки сохранять данные таймера. Помогите пожалуйста. Вот тот сайт если вам интересно посмотреть как оно там работает --> bonus-free.ru Спасибо за внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2017, 22:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что делать если таймер сбрасывается при обновлении страницы (PHP):

Можно ли делать include php ,при котором если в загружаемом файле есть ошибки,то чтобы необваливался весь скрипт в который загружается другой скрипт?
Можно ли делать include php ,при котором если в загружаемом файле есть...

При обновлении страницы кнопка сама зажимается,что делать?
http://distance-education.meximas.com/chat.php вот ссылка, зарегистрируйтесь...

Сбрасывается сессия при переходе на страницы
Добрый день! Подскажите пожалуйста в чем может быть проблема. Сделал...

Мне нужно: 1)что бы при обновлении страницы не возникало новой сесси; 2)удалять сессию с серевера после того, как клиет закрыл свое окно
У меня возникли проблемы с сессиями(не в универе :)) Мне нужно: 1)что бы при...

Переадресация при обновлении страницы
Добрый день. Есть две страницы. На одной происходит указание имени и e-mail....

как сделать чтобы при при обновлении страницы (header('location .');) попадать на ту же позицию
Например у меня есть длинный список записей, под каждой записью кнопка удалить,...

16
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 06:35 #2
Ну можно ещё в базу на сервере сохранить
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
27.12.2017, 12:25  [ТС] #3
Всмысли на сервер?
0
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 12:30 #4
Ну а почему бы нет? Куки на стороне клиента всё-таки остаются, да и небезопасны иногда.
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
27.12.2017, 12:38  [ТС] #5
То есть мне нужно данные таймера хранить в куках?
0
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 12:45 #6
Да нет же, Вы сами хотели бы так, в первом посте. Совершенно верно, что если сохранить значение таймера в переменную в
сессии, то при обновлении страницы или переходе на другую страницу (на этих страницах сессия должна стартовать), значение переменной сохранится. Однако при закрытии браузера, сессия аннигилирует. Сохранить можно и в куках, они, куки хранятся на стороне клиента, при заходе пользователя на сайт, скрипт может использовать эти куки и поднять последнее значение таймера, стартовав с него. Вам решать, что лучше использовать.
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
27.12.2017, 12:47  [ТС] #7
Ладно спасибо тогда буду через сессию
0
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 12:49 #8
удачи
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
27.12.2017, 14:48  [ТС] #9
У меня не получается я вывожу сессию, а при обновлении теже значения становятся и всё

Добавлено через 2 минуты
Может как-то в js можно решить эту задачу
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function timer(){
*
****var hour = document.getElementById('hour').innerHTML;
****var minute = document.getElementById('minute').innerHTML;
****var second = document.getElementById('second').innerHTML;
****var end = false;
*****
****if( second > 0 ) second--;
****else{
********second = 60;
*********
********if( minute > 0 ) minute--;
********else{
************second = 60;
*************
************if( hour > 0 ) hour--;
************else end = true;
********}
****}
*
****if(end){
********clearInterval(intervalID);
        $('#pol').slideDown('#pol').css('display', 'block');
        $('.reklama').slideDown('.reklama').css('display', 'block');
        $('#timer').css('display', 'none');
****}else{
********document.getElementById('hour').innerHTML = hour;
********document.getElementById('minute').innerHTML = minute;
********document.getElementById('second').innerHTML = second;
****}
}
window.intervalID = setInterval(timer, 1000);
0
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 16:22 #10
javascript работает на клиенте, поэтому всё пропадёт, как только будет переход, обновление страницы или закрытие браузера.
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
27.12.2017, 18:16  [ТС] #11
atanov, это я знаю, но как мне сделать чтобы он сохранялся на сервере
0
atanov
179 / 178 / 71
Регистрация: 26.05.2016
Сообщений: 1,132
27.12.2017, 18:33 #12
Ну например записать в mysql с помощью коротенького скрипта php. К чему привязано значение таймера?
0
Grey
Тутошний я
1594 / 785 / 129
Регистрация: 03.11.2009
Сообщений: 2,237
Записей в блоге: 1
28.12.2017, 16:11 #13
я при включении таймера, записывал в базу значение текущее время плюс время таймера. в секундах.
при перезагрузке страницы, считываю значение из базы, отнимаю от него текущее и передаю в javascript.
javascript из секунд делает секунды, минуты, часы и выводит.
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
28.12.2017, 17:28  [ТС] #14
Grey, а можно по подробнее
0
Grey
Тутошний я
1594 / 785 / 129
Регистрация: 03.11.2009
Сообщений: 2,237
Записей в блоге: 1
28.12.2017, 18:13 #15
http://www.cyberforum.ru/php-beginne...l#post11935353
0
Crezy PHP
1 / 1 / 3
Регистрация: 26.12.2017
Сообщений: 31
28.12.2017, 18:54  [ТС] #16
Grey,
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function time_on(t){
var intervalID;
var str;
intervalID = setInterval (function(){
* if (t <= 0){
* * str = '0:10:00';
* * clearInterval(intervalID);
* }else{
* * t--;
* * var hours = Math.floor(t/3600);
* * var minutes = Math.floor(t%3600/60);
* * var seconds = Math.floor(t%60);
* * if (minutes < 10) minutes = '0'+ minutes;
* * if (seconds < 10) seconds = '0'+ seconds;
* * str = hours+':'+minutes+':'+seconds;
* }
* $(".timer").text(str);
}, 1000);
}
Сможешь объяснить как тут работает

Добавлено через 2 минуты
Grey,
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function time_on(t){
var intervalID;
var str;
intervalID = setInterval (function(){
* if (t <= 0){
* * str = '0:10:00';
* * clearInterval(intervalID);
* }else{
* * t--;
* * var hours = Math.floor(t/3600);
* * var minutes = Math.floor(t%3600/60);
* * var seconds = Math.floor(t%60);
* * if (minutes < 10) minutes = '0'+ minutes;
* * if (seconds < 10) seconds = '0'+ seconds;
* * str = hours+':'+minutes+':'+seconds;
* }
* $(".timer").text(str);
}, 1000);
}
сможешь объяснить что да как
0
Grey
Тутошний я
1594 / 785 / 129
Регистрация: 03.11.2009
Сообщений: 2,237
Записей в блоге: 1
28.12.2017, 20:01 #17
в моём случае с сервера значение времени может и меньше нуля прийти.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function time_on(t){
var intervalID;//инициируем переменные
var str;
intervalID = setInterval (function(){//включаем таймер
* if (t <= 0){//если меньше нуля
* * str = '0:00:00';//записываем значение, для вывода
* * clearInterval(intervalID);//останавливаем таймер
* }else{
* * t--;//декремент
* * var hours = Math.floor(t/3600);//часы, делим и округляем до целого меньшего
* * var minutes = Math.floor(t%3600/60);//минуты, остаток от деления делим на 60, округляем
* * var seconds = Math.floor(t%60);//секунды, остаток от деления, округляем
* * if (minutes < 10) minutes = '0'+ minutes;//если меньше десяти приписываем спереди ноль
* * if (seconds < 10) seconds = '0'+ seconds;
* * str = hours+':'+minutes+':'+seconds;//собираем в строку, для вывода
* }
* $(".timer").text(str);//выводим на страницу
}, 1000);//тикает каждую секунду
}
включение на 10 минут
Javascript
1
time_on(600);
0
28.12.2017, 20:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2017, 20:01
Привет! Вот еще темы с решениями:

При обновлении страницы дублируются комметарии
Уже обсуждалась эта проблема в одной с моих тем,мне посоветовали создать два...

Отправка письма при обновлении страницы
Доброго времени суток. Нашел такую форму отправки номера телефона на почту,...

При обновлении страницы исчезает сессия
Доброго времени суток!... На форме входа ввожу почту, пароль. Вход...

Исчезновение полей при обновлении страницы
Всем привет!) Даны 2 кнопки. Каждая из кнопок возвращает заданное количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru