我想使用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>
答案 0 :(得分:1)
您可以使用serialize
将数据转换为可以存储在cookie中的表单。例如
$val = array('1','2','3','4');
setcookie("sajjad",serialize($val),time()+(86400*30));
要再次取回值,请使用unserialize
:
$val = unserialize($_COOKIE['sajjad'], false);
正如评论中指出的那样,将数据存储在cookie中是不安全的,因为它们可以由用户修改。使用会话变量更安全。您可以找到有关如何进行此操作的信息here。
答案 1 :(得分:1)
$val = array('1','2','3','4');
$data = serialize($val); //serialize array
setcookie("sajjad",$data,time()+(86400*30));
$retrive_data = unserialize($_COOKIE['sajjad']);//unserialize array
print_r($retrive_data);//print given array