0

我正在做这样的事情,它似乎不起作用!

<?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 是一个数组。这可能吗?

4

3 回答 3

3

当然可以,但您应该考虑以下几点:

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

但是,如果你想存储数组,一个想法可能是json_encode存储之前的数据json_decode和抓取它时的内容。

于 2013-02-02T16:44:12.873 回答
1

serialize()数组:

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

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

$cookie_value = unserialize($_COOKIE['mediSHOPrecentlyViewedlist']);
于 2013-02-02T16:43:13.640 回答
0

你需要serialize()它和unserialize()它。

于 2013-02-02T16:45:38.570 回答