Проблема с cookies в Yii2?

Есть сайт с компаниями. Компанию можно добавить в избранное и удалить. Идентификатор избранной компании сохраняется в куках. На странице компании все работает без проблем. Компания добавляется и удаляется из кук без проблем. Но на странице со списком избранных компаний просто мистика)). После добавления компании она появляется на странице избранных либо сразу, либо после n-го количества перезагрузок. Тоже и с удалением. Пример работы можно посмотреть на страницах - Страница компании (куки работают правильно), Страница избранного (куки работают как хотят). Добавление и удаление происходит по нажатии на звездочку.

Вот часть кода для установки кук

$favorite[] = $id; //Идентификатор компании для добавления
$cookies = Yii::$app->response->cookies;
$cookies->add(new \yii\web\Cookie([
    'name' => 'favoriteCompanies',
    'value' => serialize($favorite),
    'expire' => time() +  60*60*24*365
]));

а так получаю

$cookies = Yii::$app->request->cookies;
if ($cookies->has('favoriteCompanies') && $cookies->getValue('favoriteCompanies') != '')
   return $cookies->getValue('favoriteCompanies');
else {
   return false;
}

При удалении компании просто удаляется ее идентификатор из массива $favorite. Код для работы с cookies на обеих страницах один и тот же. Подскажите в чем может быть проблема.

P.S. Проблема точно есть. Тестировало несколько человек. Нужно добавить несколько компаний в избранное, а потом перейти на страницу Избранное и пробовать их оттуда удалять. А вообще я допиливаю за другим кодером сайт, он реализовал через куки. Думал просто где ошибка. А теперь просто хочу понять почему не работает именно такой вариант. Ведь мало где еще придется с куками работать. А тут такое. Причем проблема не только с установкой кук средствами фреймворка. Стандартный php код работает точно так же. И что самое интересное, я проследил за процессом, кука удаляется, а при последующей загрузке Избранное опять жива, и так неопределенное количество раз, пока после очередной перезагрузки страницы она все-таки не умрет.
  • Вопрос задан
  • 3291 просмотр
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
У меня таких глюков не наблюдается, все работает нормально, удаляется/добавляется, воспроизвести баг не удалось (
Гуглохром, винда 7. Возможно у Вас стоит какое-либо расширение для разработки, которое не очень нежно обращается с кукисами? Попробуйте другой браузер, попросите знакомых потестить страничку, скорее всего баг носит локальный характер, я бы на вашем месте хранил бы это не в куке а в сессии, в хардкорном варианте в базе ), а в куке только юзеркей какой-нибудь. Не думаю что юзер через год зайдет и такой: "Ах елки, у меня тут в избранном столько полезного было!" ) Но если очень охота - пиши в базу, по кею вытаскивай.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы