Проверьте куки с PHP (не JS), чтобы использовать для перенаправления страницы-заставки

Я хочу перенаправить на заставку для тех, кто впервые посещает сайт, используя куки, чтобы запомнить, что они пришли. Это легко, однако, для людей с отключенными файлами cookie, я никогда не хочу перенаправлять их на заставку.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я устанавливаю cookie, PHP не увидит его, пока я не перезагружу страницу. Это означает, что посетители в первый раз не будут перенаправлены, если они не зайдут на домашнюю страницу дважды или не перезагрузят страницу.

Вот что у меня работает, но требует перезагрузки:

setcookie("test",'1',time() + 3600,'/');
if(isset($_COOKIE['test'])){
    if(isset($_COOKIE['bfc_splash'])){}else{
        header("Location: splash/");
    }
}

Я попробовал это, но, похоже, информация SESSION хранится в cookie, потому что она просто бесконечно перенаправляет:

if(isset($_COOKIE['test'])){
    if(isset($_COOKIE['bfc_splash'])){}else{
        header("Location: splash/");
    }
}elseif(!isset($_COOKIE['test']) && !isset($_SESSION['cookies'])){
    setcookie("test",'1',time() + 3600,'/');
    $_SESSION['cookies'] = '1';
    header("Location: index.php");
}

Я бы предпочел не использовать JavaScript для проверки файлов cookie, поскольку тот, кто отключает файлы cookie, вероятно, также отключит JavaScript. Любое понимание или ссылки на решения будут высоко ценится. Я пока не нашел много.

3 ответа

Решение

Вы можете использовать сеанс и передавать идентификатор сеанса через GET вместо cookie.

Смотрите: http://php.net/manual/en/session.idpassing.php

Если у пользователя отключены файлы cookie, вы не сможете определить, посещает ли он сайт впервые или нет, потому что каждое посещение будет выглядеть как первое посещение.

Глядя на пример сайта, barackobama.com, они передают переменную GET, когда вы переходите на домашнюю страницу из перенаправления заставки. Это позволяет кому-то просматривать домашнюю страницу, если у него не включены файлы cookie. Похоже, их не слишком волнует, что любой, у кого отключены файлы cookie, будет снова перенаправлен после того, как нажмет на главную ссылку вверху (в которой отсутствует переменная GET). Поскольку они, похоже, не заботятся о людях с отключенными файлами cookie, я последую их примеру, поскольку не могу найти лучшего решения.

Другие вопросы по тегам