Я хочу перенаправить к странице-заставке в первый раз посетителей сайта с помощью cookie, чтобы помнить, что они прибыли. Это легко, однако, для людей с отключенными куки, я никогда не хочу перенаправить их к странице-заставке.
Проблема, с которой я сталкиваюсь, состоит в том, что, когда я установил cookie, PHP не будет видеть его, пока я не перезагружу страницу. Это означает в первый раз, когда посетители не перенаправляются, если они не посещают домашнюю страницу дважды или перезагружают страницу.
Вот то, что я имею, который работает, но требует перезагрузки:
setcookie("test",'1',time() + 3600,'/');
if(isset($_COOKIE['test'])){
if(isset($_COOKIE['bfc_splash'])){}else{
header("Location: splash/");
}
}
Я попробовал это, но кажется, что информация о СЕССИИ хранится в 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, начиная с кого-то, кто отключает куки, вероятно, также отключит JavaScript. Любое понимание или ссылки на решения очень ценились бы. Я не нашел много до сих пор.
Вы можете использовать сеанс и передавать идентификатор сеанса через GET вместо cookie.
Если посмотреть на пример сайта, barackobama.com, они передают переменную GET, когда вы переходите на домашнюю страницу из всплывающего перенаправления. Это позволяет кому-либо просматривать домашнюю страницу, если у них не включены файлы cookie. Они, похоже, не слишком заботятся о том, что любой, у кого отключены файлы cookie, будет снова перенаправлен, как только они нажмут ссылку на главную вверху (в которой отсутствует переменная GET). Поскольку они, похоже, не заботятся о людях с отключенными файлами cookie, я последую их примеру, поскольку не могу найти лучшего решения.
Если у пользователя отключены файлы cookie, вы не сможете определить, посещает он сайт впервые или нет, потому что каждое посещение будет похоже на первое посещение.