Куки устанавливаются 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}";
}