用WordPress设置cookie

时间:2012-09-29 16:39:02

标签: php wordpress cookies session-cookies

  

可能重复:
  Cookies aren't persisting in 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",""); ?>

这对我不起作用,但这是我第一次使用cookies。知道什么是错的吗?

修改

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

最终代码是:

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

1 个答案:

答案 0 :(得分: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文档。