2012-06-29 99 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);