Heim  >  Artikel  >  Backend-Entwicklung  >  php cookie清除与ff下cookie无法删除_PHP教程

php cookie清除与ff下cookie无法删除_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:48:391094Durchsuche

在php中设置也删除cookie我们都是使用setcookie来设置,过期了就自动删除了,但在ff下你可能会碰到cookie无法过期了。

首先我们看一下php手册中关于删除cookie的说明

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。
下面的例子说明了如何删除刚才设置的 cookie: 例子 2. setcookie() 删除
例子

 代码如下 复制代码

// 将过期时间设为一小时前

setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);

等储存用户的登录信息,然后利用

 代码如下 复制代码

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

做 退出,在IE下测试没有任何问题。既然做网站,就要兼容尽可能多的浏览器,呵呵。于是在 Firefox 中测试,登陆一切正常,当推出时,遇到了麻烦。怎么也不会退出,用户总是在登录状态。于是查看了 IE、Firefox 中cookie记录的区别,经过测试,才恍然大悟。

原来如果没有指定 setcookie() 的第四个参数(合法路径参数),默认会把当前目录作为合法路径,而我测试的路径为:http://127.0.0.1/php/rss2fla/data /log.php ,所以导致登陆和退出时 所设置的 cookie 路径不同。

IE比Firefox要人性化,呵呵,当美指定路径时,会覆盖当前 IP 下的同名Cookie变量,而FireFox比较严格了,导致又重新建了个变量……

来看几个例子: 

简单的: 

 代码如下 复制代码

SetCookie("MyCookie", "Value of MyCookie"); 

带失效时间的: 

 代码如下 复制代码

SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小时 

什么都有的: 

 代码如下 复制代码

SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".bKjia.c0m", 1); 

最后一种是兼容所有浏览器的哦。

综上,在php中操作cookie时最好使用下面的方式:

 代码如下 复制代码
if(isset($_COOKIE["sid"]) && !empty($_COOKIE["sid"])){
  // 这样可以保证Cookie存在且在有效期内
  ……
}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632780.htmlTechArticle在php中设置也删除cookie我们都是使用setcookie来设置,过期了就自动删除了,但在ff下你可能会碰到cookie无法过期了。 首先我们看一下php手册...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn