我想重定向到初次访问网站的初始页面,使用Cookie记住他们来了。这很容易,对于禁用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。任何有关解决方案的见解或链接都将非常感激。到目前为止我还没有找到太多。
答案 0 :(得分:2)
如果用户禁用了Cookie,您将无法判断他是否第一次访问该网站,因为每次访问都会像第一次访问一样。
答案 1 :(得分:2)
您可以使用会话并通过GET而不是cookie传播会话ID。
答案 2 :(得分:1)
查看一个示例站点barackobama.com,当您从splash重定向跳转到主页时,它们会传递一个GET变量。这允许某人在没有启用cookie的情况下查看主页。他们似乎并不太关心任何禁用cookie的人在点击顶部的主页链接(缺少GET变量)后会再次被重定向。由于他们似乎并不关心禁用cookie的人,我会跟进,因为我找不到更好的解决方案。