为什么cookie删除不能在我的服务器上运行但在我的本地系统上工作正常?

时间:2017-01-31 17:51:15

标签: php cookies

我的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

如果有人知道为什么它在服务器上无法正常工作,请帮助我。

1 个答案:

答案 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的代码中。)“