我的Debian apache服务器上的cookie没有删除,但在我的本地xampp上删除了。 这是我用来设置cookie的代码
$token = substr(hash('sha512', mt_rand() . microtime()), 0, 50);
$extime = time()+86500;
$url_parts = parse_url(current_url());
$domain = str_replace('www.', '', $url_parts['host']);
// set cookie
setcookie('rememberme',$token,$extime,"/",$domain);
此代码适用于服务器,并且在服务器上创建了rememberme cookie。
以下是我用来删除它的代码
// Delete Cookie
setcookie('rememberme',"",0,"/");
上面的代码在本地工作正常但在我的服务器上不起作用。
我将测试应用作为子域托管,其网址为http://example.com/myproject,$ domain为值.example.com
如果有人知道为什么它在服务器上无法正常工作,请帮助我。
答案 0 :(得分:3)
根据我的评论:(并将域名添加为参数)。
setcookie('rememberme',"",0,"/",$domain);
很多时候,它需要域名。
从cookies手册:http://php.net/manual/en/function.setcookie.php和用户贡献说明:
“如果你有时遇到问题或有时删除cookie,尽管遵循以下建议,请确保使用domain参数设置cookie。在域之前用点设置它,如示例所示:“。example.com”。我没有指定域名,最后意识到我在浏览器网址有http://www.example.com时设置了cookie,后来当网址没有www时尝试删除它。即{。http://example.com。当www。不在域中时,这也导致页面无法找到cookie。(当你将domain参数添加到创建cookie的setcookie代码时,请确保您还将其添加到删除cookie的代码中。)“