在cookie中存储数组

时间:2019-01-08 11:28:42

标签: php cookies

我想使用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>

2 个答案:

答案 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