我一直在关于另一个操作系统的项目,它在那里工作正常。我现在在Arch Linux上,现在该项目无法运行。问题似乎是我的浏览器不接受cookie。
我用
设置它setcookie('name','value', 0, '/', '', 0, true);
Firebug显示正在发送的cookie,函数返回true。但它没有使用cookie。这是在localhost上。
编辑:我也尝试了很多组合,例如:
setcookie('test', 'value');
setcookie('test', 'value', 0, '', '', 0, true);
似乎无效。
答案 0 :(得分:4)
试试这个,设置cookie
$time=time();
setcookie("test", "value", time()+86400);
时间可在其到期前的一天内进行调整。
阅读cookie
$varname = $_COOKIE["test"];
echo $varname;
它应该回显value
,因为这是你在cookie中设置的示例数据。
您还可以使用setcookie
的相同名称覆盖现有的value
答案 1 :(得分:2)
我有同样的问题。当我这样设置时:
setcookie("name","value",time()*3600);
当我尝试像这样打印时:
echo $_COOKIE['name'];
它向我显示了一个关于wamp的错误/警告,上面写着“未定义索引'名称'”。当我将其更改为
时 echo $_COOKIE["name"];
它有效!显然,双引号和单引号有所不同。希望这有帮助!
答案 2 :(得分:0)
是的,setcookie('name','value',time()+ 86400),'/',0,false);不适用于localhost机器,只有setcookie('name','value',time()+ 86400);似乎工作。但是当你在一个真正的托管域上尝试它时,setcookie('name','value',time()+ 86400),'/',0,false);工作得很好。这可能与PHP版本或您当前使用的本地服务器(XAMPP,WAMP等)有关
答案 3 :(得分:0)
尝试这些片段,为我工作。
<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
$name = htmlspecialchars($name);
$value = htmlspecialchars($value);
echo "$name : $value <br />\n";
}
}
?>