Четверг, 21.11.2024
Меню сайта
Вход на сайт
Поиск
Статистика
Рейтинг@Mail.ru
Реклама
HTML Perl PHP Прочее
Проверка поддержки cookie на php
Как посылаются 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 появлялось окно сообщения, - это облегчит отладку.
PHP 6097 18.02.2010
Материалы по теме: