1

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

我正在设置它

setcookie('name','value', 0, '/', '', 0, true);

Firebug 显示正在发送的 cookie,并且函数返回 true。但它没有使用cookie。这是在本地主机上。

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

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

似乎没有一个工作。

4

4 回答 4

4

试试这个,设置 cookie

$time=time();
setcookie("test", "value", time()+86400);

时间可以调整,设置为到期前一天。

读取 cookie

$varname = $_COOKIE["test"]; 
echo $varname;

它应该回显,value因为这是您在 cookie 中设置的示例数据。

您也可以使用相同的名称setcookie来覆盖现有的value

于 2013-08-27T21:36:14.267 回答
2

我遇到过同样的问题。当我这样设置时:

    setcookie("name","value",time()*3600);

当我尝试像这样打印它时:

    echo $_COOKIE['name'];

它向我显示了一个关于 wamp 的错误/警告,上面写着“未定义的索引'名称'”。当我将其更改为

    echo $_COOKIE["name"];

有用!显然,双引号和单引号有所不同。希望这可以帮助!

于 2014-09-11T07:34:49.007 回答
1

是的,setcookie('name','value', time()+86400), '/', 0, false); 在 localhost 机器上不起作用,只有 setcookie('name','value', time()+86400); 似乎工作。但是当你在一个真正的托管域上尝试它时 setcookie('name','value', time()+86400), '/', 0, false); 工作得很好。这可能与 PHP 版本或您当前使用的本地服务器(XAMPP、WAMP 等)有关

于 2014-02-07T03:44:41.773 回答
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";
    }
}
?>
于 2018-06-20T23:55:19.223 回答