Ely*_*yas 32 php google-chrome setcookie
我正在阅读一些关于如何设置cookie的PHP教程.我注意到在FF4和IE9上成功设置了cookie,但它没有在Chrome中设置(11.0.696.60).PHP文件是从XAMPP(localhost)提供的.
我试过w3schools的例子:
<?php
setcookie("user", "Alex Porter", time()+3600);
?>
Run Code Online (Sandbox Code Playgroud)
并从此站点(对于localhost环境):
<?php
setcookie("username", "George", false, "/", false);
?>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Mik*_*est 40
禁用IP地址的cookie,这localhost是一个设计决策.另请参阅:https://code.google.com/p/chromium/issues/detail?id = 56211
解决这个问题的方法包括:
/etc/hosts以使用127.0.0.1 localhost.com).例如,在PHP中:
setcookie(
$AUTH_COOKIE_NAME,
$cookie_value,
time() + cookie_expiration(),
$BASE_DIRECTORY,
null,
false,
true
);
Run Code Online (Sandbox Code Playgroud)
此处的值null表示不应设置域.
注意:不设置域会阻止cookie对子域可见.
小智 15
域应该等于NULL.
应该给出一个到期日.即
setcookie("username", "George", time() + (20 * 365 * 24 * 60 * 60), "/", NULL);
Run Code Online (Sandbox Code Playgroud)
看来这可能是Chrome的“开发人员工具”功能存在的错误。一直以来,我一直在尝试设置Cookie(但未检索它),并且它与其他浏览器一起使用。假设您信任FF的cookie查看部分或为IE找到cookie的文件,它就可以工作。在Chrome中,我依赖“开发人员工具”(开发人员工具>资源> Cookies)的“ Cookies”部分。
我决定更进一步,并使用WHT(由Natcoweb发布)中找到的以下脚本实际输出cookie的值:
<?php
setcookie('test', 'This is a test', time() + 3600);
if(isset($_COOKIE['test'])){
$cookieSet = 'The cookie is ' . $_COOKIE['test'];
} else {
$cookieSet = 'No cookie has been set';
}
?>
<html>
<head><title>cookie</title></head>
<body>
<?php
echo $cookieSet;
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它可以在包括Chrome在内的所有浏览器上运行(我得到:“ cookie是这是一个测试”)!但是,Chrome的Cookie检查器会继续显示“此网站没有Cookie”。我还设法找到了存储在Chrome设置中的Cookie列表(“选项”>“高级选项”>“内容设置”>“所有Cookie和网站数据”),最后找到了Cookie(检查步骤更多,但至少比开发者工具更准确)!
结论:正在设置cookie,但是Chrome的开发工具由于某种原因无法看到它。
| 归档时间: |
|
| 查看次数: |
47579 次 |
| 最近记录: |