Массив Cookie для недавно просмотренных – необходимо извлечь данные из массива и кепки cookie в 5 идентификаторов

Я пытаюсь создать недавно просмотренную функцию на веб-сайте. Идея состоит в том, что у вас есть поле в правом навигаторе, которое показывает ваши последние 3 просмотренных продукта. Вам не нужно регистрировать его, и это не проблема, если пользователь очищает файлы cookie, он только начинается.

Из того, что я исследовал, лучший способ сделать это – с помощью массива файлов cookie (в отличие от установки 5 файлов cookie или добавления файлов cookie или выполнения чего-либо в mysql).

У меня две проблемы:

  1. Во-первых, массив продолжает добавлять значения, я хочу, чтобы он закрывал его на 3 значения, а оттуда удалял старейший, а затем добавлял новейшие. Итак, если вы посетили 7 идентификаторов страниц продукта в этом порядке: 100 200 300 400 500 600 150, файл cookie должен хранить значения (500 600 150). Первый – самый старый из 3, последний – самый новый.
  2. Во-вторых, я не понимаю, как извлечь массив в нечто пригодное для использования. Массив имеет идентификационные номера, которые, как мне кажется, мне нужно запросить у БД.

Когда я помещаю это на страницу:

COOKIE: <?php echo $cookie; ?> 

Я получаю это:

 COOKIE: a:7:i:0;s:3:"100";i:1;s:3:"200";i:2;s:3:"300";i:3;s:3:"400";i:4;s:3:"500";i:5;s:3:"600";i:6;s:3:"150";} 

Это мой код:

 //set product id $product_id = [//some stuff here sets the product id] // if the cookie exists, read it and unserialize it. If not, create a blank array if(array_key_exists('recentviews', $_COOKIE)) { $cookie = $_COOKIE['recentviews']; $cookie = unserialize($cookie); } else { $cookie = array(); } // add the value to the array and serialize $cookie[] = $product_id; $cookie = serialize($cookie); // save the cookie setcookie('recentviews', $cookie, time()+3600); 

Как первыми получить cookie для хранения 3 значений и сбросить самые старые? Каков наилучший способ извлечения этих идентификаторов во что-то, что я могу внести в запрос? … str_replace?

Это вызывает еще один вопрос, который должен ли я просто поместить URL-адрес, якорный текст и пару атрибутов продукта в файл cookie, а не искать его с помощью php / mysql?

Как всегда, спасибо заранее.

Solutions Collecting From Web of "Массив Cookie для недавно просмотренных – необходимо извлечь данные из массива и кепки cookie в 5 идентификаторов"

Вот ответ, который я выяснил в myssef:

 // if the cookie exists, read it and unserialize it. If not, create a blank array if(array_key_exists('recentviews', $_COOKIE)) { $cookie = $_COOKIE['recentviews']; $cookie = unserialize($cookie); } else {$cookie = array();} // grab the values from the original array to use as needed $recent3 = $cookie[0]; $recent2 = $cookie[1]; $recent1 = $cookie[2];