Как посылаются cookie? Изначально сервер отправляет cookie клиенту как часть отклика HTTP. В следующем запросе клиент, если он согласен, возвращает cookie. По этому, вызов функции setcookie() с последующей проверкой содержимого $_COOKIE ничего не даст. Необходимо ждать следующего запроса HTTP. Code <?php If (isset($_GET['step']) && $_GET['step'] == '2') { $test_temp = isset($_COOKIE['test_temp']) ? 'supports' : 'does not support'; $test_persist = isset($_COOKIE['test_persist']) ? 'supports' : 'does not support'; setcookie('test_temp', '', time() – 365*24*60*60); setcookie('test_persist', '', time() – 365*24*60*60); echo "Browser $test_temp temporary cookies. <br>"; echo "Browser $test_persist persistent cookies. <br>"; } else { Setcookie('test_temp', 'ok'); Setcookie('test_persist', 'ok', time() + 14*24*60*60); Header("location:{$_SERVER['PHP_SELF']}?step=2"); } ?> Впрочем, можно принудительно создать второй запрос, используя header(). В приведенном примере установлено два файла cookie – временный и постоянный. Поскольку некоторые браузеры могут быть сконфигурированы таким образом, что cookie одного типа принимаются, а другого нет. После этого с помощью header() и заголовка HTTP Location: организовывается перенаправление и проверяется наличие файла cookie. Впрочем, браузер можно сконфигурировать таким образом, чтобы при поступлении cookie появлялось окно сообщения, - это облегчит отладку. |