setcookie()不会在Google Chrome中设置Cookie

2021/01/31 07:21 · php ·  · 0评论

我正在阅读一些有关如何设置cookie的PHP教程。我注意到Cookie已在FF4和IE9上成功设置,但是未在Chrome(11.0.696.60)中设置。该PHP文件由XAMPP(localhost)提供。

我尝试了w3schools的示例:

<?php
setcookie("user", "Alex Porter", time()+3600);
?>

并且从该站点(对于localhost环境):

<?php
setcookie("username", "George", false, "/", false);
?>

提前致谢。

禁用cookie的IP地址,这localhost是一个设计决定。另请参阅:https : //code.google.com/p/chromium/issues/detail?id=56211

解决此问题的方法包括:

  • 设置本地域(例如,编辑/etc/hosts以使用127.0.0.1 localhost.com)。
  • 使用http://myproject.localhacks.com/(指向127.0.0.1)。
  • 设置Cookie时,请使用一个空的域值。

例如,在PHP中

setcookie(
  $AUTH_COOKIE_NAME,
  $cookie_value,
  time() + cookie_expiration(),
  $BASE_DIRECTORY,
  null,
  false,
  true
);

此处的值null指示不应设置域。

注意:未设置域会阻止cookie对子域可见。

域应等于NULL。

&应指定有效期。

setcookie("username", "George", time() + (20 * 365 * 24 * 60 * 60), "/", NULL);

看来这可能是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>

它可以在包括Chrome在内的所有浏览器上运行(我得到:“ cookie是这是一个测试”)!但是,Chrome的Cookie检查器会继续显示“此网站没有Cookie”。我还设法找到了存储在Chrome设置中的Cookie列表(“选项”>“高级选项”>“内容设置”>“所有Cookie和网站数据”),并最终找到了Cookie(检查步骤更多,但至少比开发人员工具更准确)!

结论:正在设置cookie,但是Chrome的开发工具由于某些原因无法看到它。

您检查系统日期了吗?$ date如果是旧时间,则应更改时间$ date -s 2007.04.08-22:46 + 0000

我希望这有帮助。我遇到了同样的问题,并且有效

我尝试如下时遇到了同样的问题

setcookie("gb_role",base64_encode($_SESSION["role"]),time()+60*60*24*30);

当我将其更改为以下

setcookie("gb_role",base64_encode($_SESSION["role"]),time()+2592000);

我只是工作得很好,区别是我只是做了time()+一些数值工作,而不是time()+ 60 * 60 * 24 * 30。我知道那没有道理,但确实有效。

这段代码适用于IE,Chrome和FF

if($_COOKIE['language']==NULL || empty($_COOKIE['language']))
{


    $dirname = rtrim(dirname($_SERVER['PHP_SELF']), '/').'/';

    $expire=time()+31536000;


    setcookie("language", "English",$expire,"$dirname","mydomain.com",false,false);
}
本文地址:http://php.askforanswer.com/setcookiebuhuizaigoogle-chromezhongshezhicookie.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!