0

可能重复:
Cookie 没有在 PHP 中持久存在?

我的目标是:当用户访问我的网站登陆页面并选择他们的城市(x 或 y)时,我想设置一个记住这个选择的 cookie,所以下次他们访问登陆页面时,它会直接重定向到他们的城市。我目前拥有的代码是这样的:

登陆页面:

<?php
if (isset($_COOKIE['cambridge'])) {
    header('Location: http://cambridge.guestvibe.com');
}
else if (isset($_COOKIE['oxford'])) {
    header('Location: http://oxford.guestvibe.com');
}
?>

城市特定页面(一个示例):

<?php setcookie("Cambridge",""); ?>

我也试过:

<?php setcookie("Cambridge",""); ?>

这对我不起作用,但这是我第一次使用 cookie。知道有什么问题吗?

编辑

接受的答案解决了一半的问题,但对于 WordPress,还需要添加一些代码,解释here

最终代码是:

setcookie('city','Cambridge',time()+86400*365, "/", ".guestvibe.com");
4

1 回答 1

2

那是因为setcookie()当浏览器关闭时,您的使用必然会过期。setCookie有第三个参数,您应该使用它来设置它何时到期。默认情况下,关闭浏览器时将其排除在外。下面是一个关于如何设置 365 天后过期的 cookie 的示例:

setcookie('city','Cambridge',time()+86400*365); // remember for 365 days.

然后,将您的代码更改为如下所示:

if ($_COOKIE['city'] == 'Cambridge') {
    // redirect
} else if ($_COOKIE['city'] == 'Oxford') {
    // redirect
}

有关设置 cookie 的更多信息,请查看setcookie的 PHP 文档。

于 2012-09-29T17:05:19.833 回答