2010-02-18 3 views
5

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

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

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

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

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

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. Любое понимание или ссылки на решения будут высоко оценены. Я пока не нашел много.

ответ

2

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

+0

Да, вот почему я * никогда * перенаправить кого-то с печеньем отключенного на страницу выплеска. – Karl

+0

Вы не сможете проверить, есть ли файлы cookie отключены или впервые посещают сайт. –

1

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

Смежные вопросы