1

我有以下两个链接:

<a href="index.php?showDesktop=true">Show Desktop</a>

<a href="index.php?showMobile=true">Show Mobile</a>

我想要做的是,如果单击 showDesktop 查询,则创建一个名为 showDesktop 的 cookie 并删除 cookie showMobile,反之亦然。到目前为止,我已经尝试了以下方法,但认为我做错了。任何人都可以帮助我按照建议进行这项工作。

if($_GET['showDesktop']) {
    $_COOKIE('showDesktop', 'yes');
    $_COOKIE('showMobile', null);
}
else if($_GET['showMobile']) {
    $_COOKIE('showDesktop', null);
    $_COOKIE('showMobile', 'yes');
}
4

3 回答 3

1

您使用setcookie更改 cookie 数据:

setcookie('showDesktop', 'yes', time()+86400*365);
setcookie('showMobile', false);

但是,我确实认为为此在 cookie 上使用两个不同的名称很奇怪。考虑有一个被称为displayMode或类似的:

setcookie('displayMode', 'desktop', time()+86400*365);
于 2012-06-29T13:15:39.753 回答
0

改用“true”和“false”可能会更好。

if($_GET['showDesktop'] == 'true') {
    setcookie('showDesktop', true);
    setcookie('showMobile', false);
}
else if($_GET['showMobile'] == 'true') {
    setcookie('showDesktop', false);
    setcookie('showMobile', true);
}

当您使用 cookie 时,它​​与$_GET$_POST有点不同。你应该使用函数setcookie

于 2012-06-29T13:15:52.513 回答
0

你真的需要两个饼干吗?为什么你不能使用下面的代码只解析一个 cookie?

if($_GET['showDesktop']) {
    $_COOKIE('showDesktop', 'yes');
}
else if($_GET['showMobile']) {
    $_COOKIE('showDesktop', 'no');
}

您还可以通过使 cookie 过期来删除它们

setcookie ("showDesktop", "", time() - 3600);
于 2012-06-29T13:15:55.690 回答