2013-04-08 4 views
0

У меня есть одна страница с 5 дополнительными страницами (каждая из них имеет другую ссылку на страницу), что я пытаюсь сделать, это создать таймер, чтобы подсчитать, сколько секунд пользователь тратит на телефонный звонок.Как создать таймер в файлах cookie?

, например

main.php << the landing page 
tab1.php << additional tab 
tab2.php << additional tab 
tab3.php << additional tab 
tab4.php << additional tab 

первый раз щелчки использования на целевой странице «main.php» здесь я должен начать счетчик и если пользователь нажимает на вкладке 1, tab2, TAB3 или вкладке 4 Я хочу, чтобы таймер все еще считал секунды, которые пользователь тратит на эту страницу.

Я использовал плагин jQuery под названием «runner» http://plugins.jquery.com/runner/, чтобы иметь счетчик на моей странице, но когда пользователь переключается на другую вкладку, счетчик сбрасывается. Моя единственная проблема заключается в том, как создать счетчик, переносящий значение на другие вкладки, без потери счетчика.

Вопрос Самсунг Ядро моего вопроса - как построить живой счетчик в куки? так что значение cookie будет увеличиваться на 1 каждую секунду. он не остановится, пока я не очищу файл cookie на другой странице.

Я использую PHP, чтобы сделать остальную часть кода

Я ценю вашу помощь.

+1

Вы пытались сделать все, чтобы реализовать эту функцию? Какова конкретная проблема, с которой вы сталкиваетесь (т. Е. Вам нужно знать, как писать файлы cookie в javascript?) –

+1

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

+0

Сохраните начальную точку в файле cookie, затем, когда вы хотите узнать, сколько времени прошло, сравните текущее время с временем начала. –

ответ

0

Вы можете сохранить время начала в вашем файле cookie и прочитать конечное время перед его очисткой. Или использовать сеанс для этого?

if(!isset($_SESSION['start']))$_SESSION['start'] = time(); //on your landing page 

    $time_spent = time()-$_SESSION['start']; //on your tabs 
+0

Спасибо за этот код. Этот код проверяет, существует ли сеанс, но он не показывает мне, как сохранить тикер времени. – Mike

+0

Ваш счетчик javascript имеет параметр startAt. Вы можете использовать это, чтобы начать во время '$ time_spent'. 'echo '$ (\' # runner \ '). runner ({ Обратный отсчет: true, startAt: $ time_spent,'. Примечание startAt находится в миллисекундах, поэтому используйте [microtime] http://php.net/manual/ en/function.microtime.php –

+0

Да, я знаю об этом. Но у меня есть diffucultiey с тем, чтобы держать счетчик в печенье, а не в div. Мне нужно знать, как переназначить значение cookie на каждый берег моря – Mike

0

Возможно, вы ищете способ установить cookie с Javascript. Если вы действительно этого хотите, вы можете позвонить createCookie() каждую секунду. Вам также нужно будет отслеживать время начала, чтобы получить фактическое время, проведенное на странице. Но это может помочь вам в курсе событий. В любом случае есть четкие подходы. Просто послушайте остальные комментарии.

var unixTimestamp = Math.round(new Date().getTime()/1000); 
window.setInterval("createCookie('myCookie', unixTimestamp)", 1000);  

function createCookie(c_name, value) { 
    var expires = ""; 
    document.cookie = c_name + "=" + value + expires + "; path=/"; 
} 

function getCookie(c_name) { 
    if (document.cookie.length > 0) { 
     c_start = document.cookie.indexOf(c_name + "="); 
     if (c_start != -1) { 
      c_start = c_start + c_name.length + 1; 
      c_end = document.cookie.indexOf(";", c_start); 
      if (c_end == -1) { 
       c_end = document.cookie.length; 
      } 
      return unescape(document.cookie.substring(c_start, c_end)); 
     } 
    } 
    return ""; 
} 

Как уже обсуждалось и опубликованы на https://stackoverflow.com/a/4825695/407697

Смежные вопросы