Php перевірити, чи включені в браузері клієнта cookies

PHP: перевірити, чи включені в браузері клієнта cookies

Про самі cookies ( "ку ки") і їх призначення писати нічого не буду, інформації на цю тему купа. а ось питання з заголовка, звичайно, не новий, але завжди актуальний.

В інеті є як розумні, але неповні, так і маячні варіанти. Давайте напишемо невеликий сценарій testcookie.php. який постараємося зробити "універсальним".


сенасовая і звичайна кука в IE8

Потім робиться перезавантаження сторінки з переданим їй же параметром step = 1. Це потрібно тому, що спочатку сервер направляє cookie клієнту як частина відгуку HTTP, потім клієнт, якщо він готовий прийняти cookie, повертає її сервера.

Отже, для перевірки того, чи вдався цей повернення, потрібно чекати наступного запиту HTTP.

Щоб відрізнити другий вхід від першого, використовується умова на наявність змінної $ _GET [ 'step'].

Ось він, цей сценарій.

На жаль, насправді, в ряді г **** браузерів, які не дотримуються ніяких стандартів, наприклад, в тій же "Опері" 11.50, відключення кукіз означатиме і відключення сесій. Так що в цьому випадку вона видасть щось на кшталт циклічного редиректу.

А ось в IE8, наприклад, все спрацює коректно (настройки Cookie в ньому знаходяться так: меню Сервіс, Властивості оглядача, вкладка Конфіденційність, кнопка Додатково).

Загалом, якщо знаєте спосіб надійніше і кросбраузерності наведеного - пишіть :) А на практиці, звичайно, простіше за все виходити з того, що 99% користувачів нічого про відключення кукіз не знають і ніколи їх не відключають.