PHP 5.5 setcookie localhost无法正常工作

时间:2013-08-27 21:21:40

标签: php setcookie

我一直在关于另一个操作系统的项目,它在那里工作正常。我现在在Arch Linux上,现在该项目无法运行。问题似乎是我的浏览器不接受cookie。

我用

设置它
setcookie('name','value', 0, '/', '', 0, true);

Firebug显示正在发送的cookie,函数返回true。但它没有使用cookie。这是在localhost上。

编辑:我也尝试了很多组合,例如:

setcookie('test', 'value');
setcookie('test', 'value', 0, '', '', 0, true);

似乎无效。

4 个答案:

答案 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";
    }
}
?>