PHP установить массив cookie json кириллица

О, ребята, я провожу второй день на этом материале, пытаясь и ловя ошибки одну за другой на локальном хосте и хостинге, и до сих пор не могу понять, в чем проблема 🙁

Например, у меня есть такой массив:

$wishlistArray = array
(
array(
'id' => '1021397549',
'prod-name' => 'Продукт 1',
'cost' => '4',
'sku' => '14:200001438#8;5:361385',
'pcs' => '1',
'ship-num' => '2',
'ship-name' => 'DHL',
'ship-cost' => '2400',
'img' => 'http://i01.i.site.com/wsphoto/v15/1021397549_1/2014-новая-прекрасная-Продукт1.jpg',
'aviable' => '999',
'sku-html' => '<img class="color" height="26" width="26" src="http://i01.i.site.com/wsphoto/sku/v12/1021397549/1021397549_200001438/Хаки-2015-новый-шик-горячая-распродажа-бесплатная-доставка-сексуальные-женщины-красочные-птицы-шифон-рубашка-форме-крыла-летучей.jpg_50x50.jpg" title="8" bigpic="http://i01.i.site.com/wsphoto/sku/v12/1021397549/1021397549_200001438/Хаки-2015-новый-шик-горячая-распродажа-бесплатная-доставка-сексуальные-женщины-красочные-птицы-шифон-рубашка-форме-крыла-летучей.jpg">'
),
array(
'id' => '2028047220',
'prod-name' => 'Продукт 2',
'cost' => '9'   ,
'sku' => '',
'pcs' => '2',
'ship-num' => '2',
'ship-name' => 'EMS',
'ship-cost' => '1428',
'img' => 'http://i00.i.site.com/wsphoto/v1/1735472674_1/Продукт2-супер-изображение.jpg',
'aviable' => '999',
'sku-html' => ''
)
);

Я пытаюсь сохранить его как cookie, потому что я хотел бы повторить его с Javascript немного дальше:

$someJSON = json_encode($wishlistArray);
setcookie("wishlist", $someJSON);
$decode_array = json_decode($_COOKIE["wishlist"]);
echo 'FROM COOKIE: <pre>', print_r($decode_array), '</pre>';

Но здесь это останавливается с разными ошибками от 500 в Примечание: неопределенная переменная: а также Примечание: неопределенный индекс: когда я пытаюсь настроить его с некоторыми raw_json_encode, addslashes, ob_start (); и т. д., поэтому я думаю, что главная проблема в правильном преобразовании массива перед настройкой файла cookie.

Я молю всех богов, ребята, моя голова сходит с ума, действительно не понимаю, как это сделать 🙁

ОБНОВИТЬ:

Это чистая строка после преобразования json, которую я пытаюсь установить как cookie и не получать cookie после 🙁

[{"id":"1021397549","prod-name":"2015 \u043d\u043e\u0432\u044b\u0439 \u0448\u0438\u043a! \u0433\u043e\u0440\u044f\u0447\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0434\u0430\u0436\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0441\u0435\u043a\u0441\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435 \u043f\u0442\u0438\u0446\u044b \u0448\u0438\u0444\u043e\u043d \u0440\u0443\u0431\u0430\u0448\u043a\u0430 \u0444\u043e\u0440\u043c\u0435 \u043a\u0440\u044b\u043b\u0430 \u043b\u0435\u0442\u0443\u0447\u0435\u0439 \u043c\u044b\u0448\u0438 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0431\u043b\u0443\u0437\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u043e\u044f \u0442\u043e\u043f\u044b","cost":147,"sku":"14:200001438#8;5:361385","pcs":"1","ship-num":"2","ship-name":"e-EMS","ship-cost":796,"img":"http:\/\/i01.i.aliimg.com\/wsphoto\/v15\/1021397549_1\/2015-\u043d\u043e\u0432\u044b\u0439-\u0448\u0438\u043a-\u0433\u043e\u0440\u044f\u0447\u0430\u044f-\u0440\u0430\u0441\u043f\u0440\u043e\u0434\u0430\u0436\u0430-\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f-\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430-\u0441\u0435\u043a\u0441\u0443\u0430\u043b\u044c\u043d\u044b\u0435-\u0436\u0435\u043d\u0449\u0438\u043d\u044b-\u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435-\u043f\u0442\u0438\u0446\u044b-\u0448\u0438\u0444\u043e\u043d-\u0440\u0443\u0431\u0430\u0448\u043a\u0430-\u0444\u043e\u0440\u043c\u0435-\u043a\u0440\u044b\u043b\u0430-\u043b\u0435\u0442\u0443\u0447\u0435\u0439.jpg","aviable":"990","sku-html":""},{"id":"2028047220","prod-name":"2015 \u043d\u043e\u0432\u044b\u0439 \u0448\u0438\u043a! \u0433\u043e\u0440\u044f\u0447\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0434\u0430\u0436\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0441\u0435\u043a\u0441\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435 \u043f\u0442\u0438\u0446\u044b \u0448\u0438\u0444\u043e\u043d \u0440\u0443\u0431\u0430\u0448\u043a\u0430 \u0444\u043e\u0440\u043c\u0435 \u043a\u0440\u044b\u043b\u0430 \u043b\u0435\u0442\u0443\u0447\u0435\u0439 \u043c\u044b\u0448\u0438 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0431\u043b\u0443\u0437\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u043e\u044f \u0442\u043e\u043f\u044b 14003","cost":136,"sku":"","pcs":"2","ship-num":"2","ship-name":"China Post Registered Air Mail","ship-cost":110,"img":"http:\/\/i00.i.aliimg.com\/wsphoto\/v0\/2028047220_1\/2015-\u043d\u043e\u0432\u044b\u0439-\u0448\u0438\u043a-\u0433\u043e\u0440\u044f\u0447\u0430\u044f-\u0440\u0430\u0441\u043f\u0440\u043e\u0434\u0430\u0436\u0430-\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f-\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430-\u0441\u0435\u043a\u0441\u0443\u0430\u043b\u044c\u043d\u044b\u0435-\u0436\u0435\u043d\u0449\u0438\u043d\u044b-\u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435-\u043f\u0442\u0438\u0446\u044b-\u0448\u0438\u0444\u043e\u043d-\u0440\u0443\u0431\u0430\u0448\u043a\u0430-\u0444\u043e\u0440\u043c\u0435-\u043a\u0440\u044b\u043b\u0430-\u043b\u0435\u0442\u0443\u0447\u0435\u0439.jpg","aviable":"998","sku-html":""},{"id":"802048809","prod-name":"\u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043a\u0440\u0443\u0436\u0435\u0432\u0430 \u0448\u0438\u0444\u043e\u043d \u0431\u043b\u0443\u0437\u043a\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0430 \u0441 \u043a\u0430\u0440\u0434\u0438\u0433\u0430\u043d \u0434\u043b\u044f \u0436\u0435\u043d\u0449\u0438\u043d 2015 \u0432\u0435\u0441\u043d\u0430 \u043c\u043e\u0434\u0430 \u0434\u0430\u043c\u044b \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u043e\u044f \u0442\u043e\u043f\u044b","cost":585,"sku":"","pcs":"1","ship-num":"3","ship-name":"Fedex IE","ship-cost":3865,"img":"http:\/\/i01.i.aliimg.com\/wsphoto\/v0\/802048809\/\u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440-\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e-\u0438\u0437-\u0434\u0432\u0443\u0445-\u0447\u0430\u0441\u0442\u0435\u0439-\u043a\u0440\u0443\u0436\u0435\u0432\u0430-\u0448\u0438\u0444\u043e\u043d-\u0431\u043b\u0443\u0437\u043a\u0430-\u0440\u0443\u0431\u0430\u0448\u043a\u0430-\u0441-\u043a\u0430\u0440\u0434\u0438\u0433\u0430\u043d-\u0434\u043b\u044f-\u0436\u0435\u043d\u0449\u0438\u043d-2015-\u0432\u0435\u0441\u043d\u0430-\u043c\u043e\u0434\u0430.jpg","aviable":"919","sku-html":""}]

1

Решение

Прежде всего json_decode требует TRUE-подобный второй параметр, чтобы вернуть ассоциативный массив в качестве результата.
Затем убедитесь, что вы используете правильную кодировку, потому что json_decode вернет сюда строки в кодировке UTF-8.

0

Другие решения

PHP часть решена с base64_encode

   ob_start();

header("Content-Type:text/html;charset=utf-8");

function raw_json_encode($input) {

return preg_replace_callback(
'/\\\\u([0-9a-zA-Z]{4})/',
function ($matches) {
return mb_convert_encoding(pack('H*',$matches[1]),'UTF-8','UTF-16');
},
json_encode($input)
);

}

$someJSON = base64_encode(raw_json_encode($wishlistArray));
setcookie("wishlist", $someJSON);
$decode_array = json_decode(base64_decode($_COOKIE["wishlist"]));

echo 'FROM COOKIE: <pre>', print_r($decode_array), '</pre>';

Часть Javascript не решена Так что мне просто нужно понять, как декодировать его обратно в Javascritpt, потому что

        <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/core-min.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-utf16-min.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="src/jquery.cookie.js"></script>

<div id="myCart"></div>

<script>
var wishlistArray = JSON.parse(CryptoJS.enc.Base64.parse($.cookie('wishlist')));var wishlistArrayDom = "";
jQuery.each(wishlistArray, function (i, wishlistID) {
wishlistArrayDom += '<br><div><b>'
+
wishlistID["id"] + ' ' +
wishlistID["prod-name"] + ' ' +
wishlistID["cost"] + ' ' +
wishlistID["sku"] + ' ' +
wishlistID["pcs"] + ' ' +
wishlistID["ship-num"] + ' ' +
wishlistID["ship-name"] + ' ' +
wishlistID["ship-cost"] + ' ' +
wishlistID["img"] + ' ' +
wishlistID["aviable"]
+
'<br>';

});

$('#myCart').empty();
$('#myCart').html(wishlistArrayDom);

}
</script>

не работает вообще, и я как-то получаю Uncaught SyntaxError: неожиданный токен b на 1 точка останова.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector