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 に答える