Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2020, 00:06
Интересующийся
Отправить личное сообщение для karnager Посмотреть профиль Найти все сообщения от karnager
 
Регистрация: 14.06.2019
Сообщений: 16

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

Нашел отдельные части функций, объединил их, получилось следующее:
<script>
// создает функцию, которая возвращает значение указанного cookie с именем 'cname'  
  function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

// записывает значения cookie (если они есть) в переменные
var visitCount = getCookie("visitCount");
var currentSession = getCookie("currentSession");

// создает функцию, которая записывает cookie 'visitCount'
function setVisitCountCookie(cookieValue) { 
    var cookieName = "visitCount";
	var expirationTime = 7776000; 
    expirationTime = expirationTime * 1000; 
	var date = new Date(); 
	var dateTimeNow = date.getTime(); 
	date.setTime(dateTimeNow + expirationTime);
    var expirationTime = date.toUTCString();
    document.cookie = cookieName+"="+cookieValue+"; expires="+expirationTime+"; path=/; domain=." + location.hostname.replace(/^www\./i, "");
}
  
// создает функцию, которая записывает вспомогательный файл cookie 'currentSession'
function setCurrentSessionCookie() {
    var cookieName = "currentSession";
	var cookieValue = "true";
	document.cookie = cookieName+"="+cookieValue+"; path=/; domain=." + location.hostname.replace(/^www\./i, "");
}


// проверяет, есть ли уже файл-cookie с именем 'visitCount'
if
   (visitCount == '')	

// если нет, то записывает значение '1'
	{
	setVisitCountCookie('1');
	setCurrentSessionCookie();
	}

// если он есть, то проверяет, было ли значение файла-cookie 'visitCount' уже добавлено во время этого сеанса (то есть если есть значение для файла-cookie 'currentSession'). Если нет, добавляет +1 к файлу 'visitCount'
else
	{
      if
          (currentSession == '')	
		{setVisitCountCookie(parseInt(visitCount) + 1);
		 setCurrentSessionCookie();}
	}

</script>


Но почему-то код не отрабатывает. Всегда только 1 визит получается ( Буду признателен за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2020, 00:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

karnager,
вероятно currentSession всегда true.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2020, 00:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

karnager,
https://javascript.ru/forum/events/7...tml#post508270
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 12:31
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
добавить счетчик в счетчик dimon76 Events/DOM/Window 1 28.06.2011 23:06