0

我正在使用 a$_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),请告诉我!

4

2 回答 2

2

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

于 2012-08-07T21:07:54.807 回答
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

于 2012-08-07T21:14:52.913 回答