cookie的值可以是数组吗?我可以将它作为数组传递吗? PHP的?

时间:2013-02-02 16:40:38

标签: php arrays cookies

我正在做这样的事情,似乎没有用!

<?php 
    //cookie for saving recently viewed products list
    //global $post;
    //echo $post->ID;
    if (!$_COOKIE['mediSHOPrecentlyViewedlist']) {
        setcookie("mediSHOPrecentlyViewedlist", $post->ID, strtotime('+6 days'), "/");
    } else {
        $cookie_value = htmlspecialchars($_COOKIE['mediSHOPrecentlyViewedlist']);
        $cookie_value = explode(",",$cookie_value);
        array_unshift($cookie_value, $post->ID);
        setcookie("mediSHOPrecentlyViewedlist", $cookie_value, strtotime('+6 days'), "/");

        print_r($cookie_value);
    }
?>

$ cookie_value是一个数组。这可能吗?

3 个答案:

答案 0 :(得分:3)

当然可以,但您应该考虑以下事项:

Cookie旨在存储最少的数据,因为可以由用户更改。在这里存储大量数据并不安全。你应该存储用户ID,密码哈希和次要的重要内容,并让你的抄写员处理其余的事情。

但是,如果你想存储数组,那么在存储数据之前可能需要json_encode数据,而在获取数据时可能需要json_decode和内容。

答案 1 :(得分:1)

serialize()数组:

array_unshift($cookie_value, $post->ID);
$cookie_value = serialize($cookie_value);

然后阅读它的值,unserialize()它:

$cookie_value = unserialize($_COOKIE['mediSHOPrecentlyViewedlist']);

答案 2 :(得分:0)

您需要serialize()unserialize()提示>