【发布时间】:2010-03-02 22:09:22
【问题描述】:
我的website 有一个漂亮的基于 cookie 的主页重定向方案。基本上,当用户第一次浏览网站时,他们会看到两个选择(产品与加工服务)。当用户点击两个按钮中的一个时,JavaScript函数将饼干存储有适当的选择(“产品”或“加工”)。此 cookie 设置为存储 365 天。
然后,当用户下次访问网站的根级别 (/) 时,以下 PHP 代码会将他们重定向到正确的页面:
<?php
// Pull last home page choice
$home_page_choice = $_COOKIE["HomePageChoice"];
if ($home_page_choice == "products") {
// Redirect user to Products page
header("Location: products/index.php");
exit();
} else if ($home_page_choice == "machining") {
// Redirect user to Machining Services page
header("Location: machining/index.php");
exit();
} else {
// Redirect user to first-time user home page (where user can choose where to go)
header("Location: home/index.php");
exit();
}
?>
如果用户碰巧点击返回站点主页,该 cookie 将被清除,准备好做出新的选择。如果你问我,这是有史以来最聪明的代码! ;)
问题是,Mac 版 FireFox(3.6 版)似乎没有正确重定向(意味着它只是转到最后一个“else”页面或“home/index.php”;适用于 Windows 的 FireFox 3.6 有效,两个平台上的 IE 8 和 Safari 也是如此。我知道 FireFox 可以读取 cookie;我已经使用“echo $home_page_choice;”对其进行了测试。
那么,FireFox 是怎么回事?我认为它一定是某种 FireFox 错误,因为 PHP 是一种基于服务器的语言,并且或多或少独立于浏览器。
-HazMatt
【问题讨论】:
标签: php firefox redirect cookies