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

Я хочу перенаправить на заставку для тех, кто впервые посещает сайт, используя куки, чтобы запомнить, что они пришли. Однако это легко сделать для людей с отключенными файлами 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 ]

2 голосов
/ 18 февраля 2010

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

См .: http://php.net/manual/en/session.idpassing.php

2 голосов
/ 18 февраля 2010

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

1 голос
/ 18 февраля 2010

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

...