【问题标题】:setcookie() do not set value in chromesetcookie() 不在 chrome 中设置值
【发布时间】:2013-10-09 23:34:30
【问题描述】:

大家好,我只在 chrome 中遇到setcookie() 的问题。它在 Firefox 中运行良好。 这是我使用 cookie 的功能

 function step3($voice_choice = null)
 {
    if (!empty($voice_choice)) 
    {
        setcookie("voice_choice", $voice_choice, time() + 2000, "/");
    }
 }

当我打印 $_COOKIE 时输出是

   Array ( [CAKEPHP] => s247c7mlagt5am6h323cm7pqj0 [voice_choice] => favicon.ico )

voice_choice 的值不是我在上面的函数中设置的。

【问题讨论】:

  • 也许是浏览器的配置问题,不总是接受cookies,也许你放的路径是相关的。您是否尝试过其他 webkit 浏览器,例如 Safari?
  • 显示你用来调用step3()的代码
  • .ctp 文件中有一个调用 step3() 的链接。 link("FEMALE", array('controller' => 'survey', 'action' => "step3/female"),array("class"=>"option_image")); ?> link("MALE", array('controller' => 'survey', 'action' => "step3/male"),array("class"=>"option_image") );?>

标签: php google-chrome cookies


【解决方案1】:

如果您使用的是 CakePHP,为什么不按照他们的方式来做呢?

public $components = array('Cookie');

$cookieTime = '8 weeks';  //The amount of time you want the cookie to last

if ( !empty($voice_choice) )
  this->Cookie->write('voice_choice', $voice_choice, true, $cookieTime);

对于调试 cookie,Chrome 中的一个不错的技巧是:

检查元素 -> 资源选项卡 -> Cookies -> yoursite (local.yoursite.com) 以查看是否正在写入 cookie。

【讨论】:

  • Brett Stewart .. 我先用的是 CakePHP cookie,但 CakePHP cookie 也有同样的问题。
  • 在您的 core.php 中位于 /app/Config/core.php 尝试设置 Configure::write('Session.checkAgent', false);配置::write('Session.ini',array('session.cookie_secure' => false, 'session.referer_check' => false));让我知道这是否适合您。
  • 谢谢布雷特·斯图尔特。让我先检查一下,然后我会告诉你
猜你喜欢
  • 1970-01-01
  • 2013-11-23
  • 2014-09-27
  • 2018-06-05
  • 2011-08-16
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多