У постов есть рейтинг. Поднять рейтинг поста может не только пользователь, но и гость. Необходимо сделать так, чтобы поднять рейтинг можно было только 1 раз в сутки. Если это пользователь, поднятие рейтинга контролируется с помощью БД, но как быть с гостями? Первое, что приходит в голову, это использовать куки, в контроллере делаю так:
if(!Yii::$app->request->isAjax)
return json_encode(['status'=>'err_3']);
// если гость
if(!isset(Yii::$app->request->cookies['like_' . $id])) { // $id - ид поста
Yii::$app->response->cookies->add(new \yii\web\Cookie([
'name'=>'like_' . $id,
'value'=>1,
'expire'=>86400,
]));
// повышаем рейтинг и возвращаем 'ok'
}
Проблема заключается в том, что isset(Yii::$app->request->cookies['like_' . $id]) постоянно возвращает false. Где допущена ошибка? Может есть способы более качественно идентифицировать гостя?