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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: отсчет времени с помощью сессий
troelsenon
Отправлено: 02 Июля, 2012 - 17:57:22
Post Id


Новичок


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


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




Подсобите пожалуйста! Мне нужно с помощью сессий написать секундомер отсчета времени пребывания на данной странице.
то что делал я
session_start();
$_SESSION["sec"] = time();
echo "Время пребывания на странице ".$_SESSION['sec']." сек. ";
Но там большое число, а нужен отсчет от 0 и т.д. (1,2 ...).
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Июля, 2012 - 18:10:56
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




PHP:
скопировать код в буфер обмена
  1. echo "Время пребывания на странице " . (time() - $_SESSION['sec']) . " сек. ";
 
 Top
troelsenon
Отправлено: 02 Июля, 2012 - 18:25:10
Post Id


Новичок


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


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




Попробовал. Но появляется значение 0 , а дальше не идет.
 
 Top
Green
Отправлено: 02 Июля, 2012 - 18:31:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


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




Естественно 0. $_SESSION['sec'] каждый раз обновляется у Вас.... То есть ей присваивается текущее значение time() а далее происходит тоже что и 123-123=0. Вы запишите в сессию sec только один раз значение time(). Например, только тогда, когда пользователь вошел в аккаунт. Ну это конечно смотря для чего Вы это делаете... Улыбка
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. if(isset($_GET['time'])) $_SESSION['time'] = time();
  3. if(isset($_SESSION['time'])) echo time() - $_SESSION['time'];
  4. ?>

Вот написал Вам код для тестирования.
Запустите в строке браузера page.php?time, но только один раз. И перейдите снова на page.php. Вот в таком случае все будет работать нормально.

(Отредактировано автором: 02 Июля, 2012 - 18:35:25)

 
 Top
troelsenon
Отправлено: 02 Июля, 2012 - 18:51:47
Post Id


Новичок


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


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




Да так как Вы написали работает. Спасибо!
Только, вот не пойму как обойтись без:

Цитата:
Запустите в строке браузера page.php?time, но только один раз. И перейдите снова на page.php. Вот в таком случае все будет работать нормально.
 
 Top
Green
Отправлено: 02 Июля, 2012 - 18:56:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


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




troelsenon пишет:
Только, вот не пойму как обойтись без:

Ну, смысл в чем... Запись time() в $_SESSION['time'] должна происходить только один раз.
Я уже написал, например, когда пользователь вошел в аккаунт.
В общем, данный код:

Должен ограничиваться каким-нибудь условием. Чтобы значение, записанное в $_SESSION['time'], не изменялось при обновлении страницы. Ибо, как я уже писал, у Вас выходит тоже что и 123-123=0, или time()-time()=0.
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Июля, 2012 - 18:57:17
Post Id



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


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Green пишет:
Запустите в строке браузера page.php?time, но только один раз. И перейдите снова на page.php.

Зачем?
PHP:
скопировать код в буфер обмена
  1. $_SESSION['time'] = (isset($_SESSION['time'])) ? $_SESSION['time'] : time();
  2. echo time() - $_SESSION['time'];

(Отредактировано автором: 02 Июля, 2012 - 19:01:31)

 
 Top
troelsenon
Отправлено: 02 Июля, 2012 - 18:59:32
Post Id


Новичок


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


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




Немножко до осмыслил:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $sessia = (!isset($_SESSION['sec']))?$_SESSION['sec']=0:$_SESSION['sec']+=1;
  3. echo "Время пребывания на странице ".$sessia." сек. ";
  4. if(isset($_GET['del'])) { session_destroy(); }
  5. elseif(!isset($_GET)) {$_SESSION['sec']=0;}
  6. ?>
 
 Top
Green
Отправлено: 02 Июля, 2012 - 19:00:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


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




armancho7777777, да, не спорю, отличное решение. Мне просто что первое в голову пришло, то и написал. Подмигивание
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Июля, 2012 - 19:00:44
Post Id



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


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Green пишет:
Мне просто что первое в голову пришло

Мне тоже Радость
 
 Top
troelsenon
Отправлено: 02 Июля, 2012 - 19:11:22
Post Id


Новичок


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


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




Спасибо Вам за помощь Green и armancho7777777 !
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Июля, 2012 - 19:12:18
Post Id



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


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




На здоровье)
 
 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