FireFox 3.6 for Mac无法正确读取cookie /重定向

我有一个漂亮的基于cookie的小主页重定向方案,用于我的website . 基本上,当用户第一次浏览网站时,他们会看到两个选项(产品与加工服务) . 当用户单击两个按钮之一时,JavaScript函数会存储具有相应选项的cookie("products"或"machining") . 此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将被清除,准备好进行新的选择 . 如果你问我,这是有史以来最聪明的代码! ;)

问题是,FireFox for Mac(版本3.6)似乎没有正确重定向(意味着它只是去了最后的'else'页面,或'home / index.php'; FireFox 3.6 for Windows工作,IE也是如此8和两个平台上的Safari . 我知道FireFox可以读取cookie;我已经用“echo $ home_page_choice;”进行了测试 .

那么FireFox发生了什么?我认为它必须是某种类型的FireFox错误,因为PHP是基于服务器的语言,并且或多或少与浏览器无关 .

-HazMatt

回答(1)

2 years ago

你必须(根据rfc)在位置 Headers 中提供一个完整的URL(即“http://host/”) . 无论如何我都不值得修理 .