1

次の 2 つのリンクがあります。

<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で2つの異なる名前を使用するのは奇妙だと思います。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

本当に 2 つの Cookie が必要ですか? 次のコードを使用して、1 つの Cookie だけを解析できないのはなぜですか?

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

期限切れのクッキーを削除することもできます

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