Хранить массив в cookie

Я преобразовываю массив в cookie с помощью функции сериализации php

$PromoteProductArray = array("PromoteuserId"=>$PromoteuserId, "PromoteProductId"=>$PromoteProductId, "PromoteBrandId"=>$PromoteBrandId); $Promotedcart[] = $PromoteProductArray; setcookie("Promotedcart", serialize($Promotedcart), time()+604800,'/'); 

И когда cookie создается, я использую функцию unserialize php.

 print_r(unserialize($_COOKIE['Promotedcart'])); 

это не работает.

Когда я print_R($_COOKIE) тогда он показывает мне значение.

Solutions Collecting From Web of "Хранить массив в cookie"

Куки, разделенные точкой с запятой. Сериализованные строки с массивами содержат их внутри. Возможно, это проблема. Вы можете использовать base64, чтобы избежать всех возможных проблем с безопасностью.

Просто столкнулся с ситуацией, когда мне также понадобилось использовать это решение. Я нашел здесь свой ответ: обновить значение cookie в php

Вы можете использовать функции json_encode , json_decode для достижения этого в качестве альтернативы.

 $PromoteProductArray = array("PromoteuserId"=>$PromoteuserId, "PromoteProductId"=>$PromoteProductId, "PromoteBrandId"=>$PromoteBrandId); $Promotedcart[] = $PromoteProductArray; setcookie("Promotedcart", json_encode($Promotedcart), time()+604800,'/'); $result = json_decode($_COOKIE['Promotedcart'], true); print_r($result); 

Попробуйте, это должно сработать.