PHP setcookie在本地开发服务器上失败

时间:2014-02-19 19:47:39

标签: php cookies vagrant

我在我的机器上运行一个流浪汉服务器来测试我网站的php端。

我正在尝试使用cookie记住网站上的选项,但它拒绝转移到网站的其余部分。我已经尝试指定本地域(test.dev),本地IP地址......没有。在单击按钮后调用的页面上,设置了cookie:

Cookie设置页面:

array(3) {
  ["PHPSESSID"]=>
  string(26) "p6rpk6ct7c9clg5fdr7j8cg4v6"
  ["ukshow"]=>
  string(5) "hello"
  ["__ar_v4"]=>
  string(104) "H3ELFFCLHNBXZJDXN2KICN:20140219:54|37K3GO4OMFDVHJVEKXZ7HL:20140219:54|5YST4SB55RB5LCGWF5RBRL:20140219:54"
}

索引或任何其他页面:

array(3) {
  ["PHPSESSID"]=>
  string(26) "p6rpk6ct7c9clg5fdr7j8cg4v6"
  ["ukshow"]=>
  string(0) ""
  ["__ar_v4"]=>
  string(104) "H3ELFFCLHNBXZJDXN2KICN:20140219:55|37K3GO4OMFDVHJVEKXZ7HL:20140219:55|5YST4SB55RB5LCGWF5RBRL:20140219:55"
}

我尝试了各种各样的setcookie蜇,从设置域名/ IP,在它之前添加一个点,设置路径到/,尝试引号或单引号......那个地段。什么都行不通!

一个例子:

setcookie("ukshow","hello",time() + (86400 * 365),"/",".test.dev");

编辑:忘了添加,我可以在Safari& amp;的开发者控制台中看到它们。 Chrome(未检查任何其他内容..)

3 个答案:

答案 0 :(得分:2)

您是否尝试过为全局域设置Cookie?

setcookie("ukshow", "hello", time() + (86400 * 365), "/");

$folder = '/myfolder/';
setcookie("ukshow", "hello", time() + (86400 * 365), $folder);

这似乎在非常相似的环境中对我有用。

答案 1 :(得分:1)

固定。切记不要使用=来查找值!我在页面上再次设置了值 - 愚蠢! 请记住:The 3 different equals

答案 2 :(得分:0)

确保在您的本地环境中将cookie_secure设置为false。