【发布时间】:2019-01-08 11:28:41
【问题描述】:
我想使用 set_cookie() 函数将数组存储到 cookie 中。因此,每当我将数组作为参数传递给 set_cookie() 函数时,它都会返回一个错误:
警告:setcookie() 期望参数 2 为字符串,数组在第 3 行的 C:\xampp\htdocs\folder\sajjad.php 中给出。
我已经尝试了 StackOverflow 中有关此主题的所有可用答案。但它们都不起作用。
<?php
$val = array('1','2','3','4');
setcookie("sajjad",$val,time()+(86400*30));
?>
<!DOCTYPE html>
<html>
<head>
<title>HOME</title>
</head>
<body>
</body>
</html>
【问题讨论】:
-
如错误提示,cookie 数据必须为字符串格式。更重要的是,您不应该将真实数据存储在 cookie 中,因为用户可以编辑它们。相反,您可以使用会话
-
欢迎您。你可以
json_encode你的数组。但正如之前评论中所说,您应该避免在 cookie 中存储真实数据。使用sessions 更好。 -
“我已经尝试了 StackOverflow 中关于此主题的所有可用答案” - 您尝试了哪些方法,但没有成功? Cookie 只能存储字符串和数字,因此您需要对数组进行序列化。您可以使用 PHP 的
serialize()(然后在再次读取值时使用unserialize())或使用json_encode()和json_decode()将其存储为 json 字符串。不过,正如第一条评论所暗示的那样,您应该只使用 cookie 来存储少量不重要或不私有的数据,因为它可以被客户端修改。 -
“php 在 cookie 中存储数组”在 Google 中输入很快就会导致 stackoverflow.com/questions/9032007/arrays-in-cookies-php,这应该会给你所有你需要的信息。