@storm-coder

Как правильно принять куки?

Куки устанавливаются 1 раз в сутки. Когда захожу на сайт первый раз за день - там висит "Вы зашли к нам 5-й раз", хотя зашел 6-й. И лишь после перезагрузки страницы - выводит все правильно (6-й).
Т.е. когда захожу на сайт первый раз за день - куки отправляются, и только после перезагрузки страницы они обрабатываются.

Как сделать так, чтобы выводился правильный номер визита на сайт при первой загрузке страницы?
<?
$visitCounter = 0; // переменная для подсчета кол-ва посещений (счетчик посещений);

if (isset($_COOKIE['visitCounter'])) {
	$visitCounter = $_COOKIE['visitCounter'];
}

$visitCounter++; 

/*==================================================*/

$lastVisit = ""; // строковая переменная для хранения значения последнего посещения страницы (значение по умолчанию - пустая строка)

if (isset($_COOKIE['lastVisit'])) { // проверить, пришли ли куки (if true - присвоить их значение переменной $lastVisit)
	$lastVisit = date("d-m-Y H:i:s", $_COOKIE['lastVisit']); // date() - распаковать временную метку (  день - месяц - год часы - минуты - секунды )
}


// условие (ограничение), чтобы куки устанавливались (отправлялись) только один раз в день (если последняя дата посещения сайта не сегодня):
if(date('d-m-Y', $_COOKIE['lastVisit']) != date('d-m-Y')){
	setcookie("visitCounter", "$visitCounter", 0x7FFFFFFF); 
	setcookie('lastVisit', time(), 0x7FFFFFFF); 
}



//Приветствие пользователя и время последнего посещения (работа с куки в файле inc/cookie.inc.php):
	if ($visitCounter == 1) { // если пользователь зашел первый раз
		echo "Спасибо, что зашли на огонек<br>";
	}else { // если пользователь зашел не первый раз
		echo "<h1>Вы зашли к нам {$visitCounter}-й раз</h1><br> Последнее посещение: {$lastVisit}";
	}
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
JaxxDexx
@JaxxDexx
Когда устанавливаете куки, инкрементите счетчик
if(date('d-m-Y', $_COOKIE['lastVisit']) != date('d-m-Y')){
  setcookie("visitCounter", "$visitCounter", 0x7FFFFFFF); 
  setcookie('lastVisit', time(), 0x7FFFFFFF); 
  $visitCounter++;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Ну так увеличьте переменную на 1 и все, сделайте вместо $visitCounter = 0;$visitCounter = 1;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы