增加$ _COOKIE [数组]不工作?

时间:2012-08-07 21:06:22

标签: php

我使用$_COOKIE[array]来保存单个输入的数据。此输入仅在用户输入两次相同值时才会提交。例如,如果他们提交苹果,然后是橙色,然后是香蕉,然后是苹果,表格将在第二次出现“苹果”时提交。

我读了[本教程]( http://phpprogramming.wordpress.com/2007/03/06/php-cookies-tutorial-and-examples/)。

for ($i = 1; $i < 10; $i++) {
    if (!isset($_COOKIE[$i])) {
        setcookie("query" . [$i],$query,time()+604800,"/");
        break1;
    }
}
foreach ($_COOKIE["query"] as $key => $value) {
    echo "$key:$value";
}

我相信这可能是一个语法错误,因为我得到了:

Warning: Invalid argument supplied for foreach()

如果你知道更好的方式(不能是mySQL),请告诉我!

2 个答案:

答案 0 :(得分:2)

$_COOKIE["query"]不是一个数组,这是产生错误的原因。

答案 1 :(得分:1)

$ _ COOKIE ['query']无法存储数组。这也是当您尝试在foreach中使用它时出现错误的原因。您可以在保存之前序列化阵列。像这样的东西

$array = array();
for ($i = 1; $i < 10; $i++) {
    $array[] = $i;
}
setcookie("query",urlencode(serialize($array)),time()+604800,"/");

$query = unserialize(urldecode($_COOKIE['query']));
foreach ($query as $key => $value) {
    echo "$key:$value";
}

还可以查看这篇文章update cookie value in php,了解为何使用urlencode / urldecode