<?php
if (!isset($_COOKIE['visits'])) {
$_COOKIE['visits'] = 2;
}
$visits = $_COOKIE['visits'] + 1;
setcookie('visits', $visits, time() + 3600*24*365);
include 'welcome.html.php';
?>
вот шаблон в который передаются данные:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Шаблон для вывода куки.</title>
</head>
<body>
<p>
<?php
if($visits > 1) {
echo "Номер данного посещения: $visits.";
} else {
// Первое посещение
echo 'Добро пожаловать на мой веб-сайт.';
}
?>
</p>
<p>
<?php
$a = $_COOKIE['visits'];
echo " $a ";
?>
</p>
</body>
</html>
Здесь почему-то при первом открытии страницы выводится:
Номер данного посещения: 3. (это правильно)
2 - это то, что в переменной a. (это неправильно)
Неправильно, потому что в предпоследней строке первого кода устанавливаются куки со значением 3. Если перезагрузить этот файл, то будет выведено:
Номер данного посещения: 4.
Т.е. вроде как функция setcookie срабатывает, но только при перезагрузке. Почему это так может происходить?