2012-06-29 96 views
1

我有以下兩個鏈接:PHP創建和刪除cookies

<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'); 
} 
+0

'$ _COOKIE'不是函數刪除Cookie。 –

回答

1

您使用setcookie更改cookie數據:

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

我這樣做,不過,認爲這是奇怪的餅乾此使用兩個不同的名字。考慮有一個叫displayMode或類似:

setcookie('displayMode', 'desktop', time()+86400*365); 
0

也許它當您使用「真」和「假」,而不是更好。

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

當你與cookies爲$ _GET$ _ POST它有點不同的工作。你應該使用功能setcookie

0

你真的需要兩個餅乾嗎?爲什麼不能使用下面的代碼並只解析一個cookie?

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

您還可以通過它們到期

setcookie ("showDesktop", "", time() - 3600);