我在IE和Edge上遇到了一个奇怪的问题--他们似乎阻止了我本地机器上的cookie,因为域名指向我的PC。
因此,我有一个包含以下代码的域http://mydomain.local/cookie.php:
<?php
setcookie('my','cookie',0);
print '<pre>'; print_r($_COOKIE); print '</pre>';
?>如果我上传到我的服务器并通过IE/Edge运行它,我没有得到任何问题。但是,在本地运行它,什么都不会设置。没有饼干。我检查了cookies选项,上面写着“不要阻止cookies”,但我有点困惑--有什么安全设置吗?谢谢。
发布于 2016-07-05 21:18:07
你知道在读取cookie之前需要重新加载吗?因此,您设置了cookie,但它无法读取,因为您需要重新加载页面。
如果重新加载页面,则会再次设置cookie,因此无法读取它。
if(!isset($_COOKIE)){
setcookie('my','cookie',0);
}else{
print '<pre>'; print_r($_COOKIE); print '</pre>';
}因此,打开页面,然后按刷新。
编辑:这与internet explorer无关,这就是setcookie和PHPs cookie函数的工作方式。
http://php.net/manual/en/function.setcookie.php
常见陷阱:
Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires.
https://stackoverflow.com/questions/38204277
复制相似问题