Проблемы с Cookies

Решил реализовать на сайте SafeMode, On - не показывать пикантный контент, Off - показывать все! Регистрации на сайте нет, решил реализовать посредством cookies. Только после нажатия в первый раз на кнопку Safe Mode записывается cookie. На локальном сервере все работает отлично, выложил на хостинг - значение cookie переключается как и должно, но код срабатывает, только после обновления страницы.




public function actionIndex()

{            

if (isset(Yii::app()->request->cookies['safe_mode']))

    $cookie = Yii::app()->request->cookies['safe_mode']->value;

else

    $cookie = 1;


$this->render('index',array('cookie'=> $cookie));

}


public function actionSafe()

{

if (isset(Yii::app()->request->cookies['safe_mode']))

{

    $cookie = Yii::app()->request->cookies['safe_mode']->value;

            

    if ($cookie)

        Yii::app()->request->cookies['safe_mode'] = new CHttpCookie('safe_mode', 0);

    else

        Yii::app()->request->cookies['safe_mode'] = new CHttpCookie('safe_mode', 1);

} else

    Yii::app()->request->cookies['safe_mode'] = new CHttpCookie('safe_mode', 0);

            

    $this->redirect(Yii::app()->request->urlReferrer);

}



По нажатию на кнопку SafeMode из Index’а выполняется Safe Action. Повторяю, что тот же код исправно работает на локалке, на Denwer’e.

Есть у кого какие мысли?

Пол дня играюсь с этим - перепробовал кучу вариантов и все свидетельствует о том, что это кэш. Если действительно в нем проблема, что можно сделать чтоб чистить его или не кэшировать вовсе. Вариант с meta cache control не вылечил неисправность. Может быть где то в конфигурации кэширование настраиваться?

Не понятно, как должно все работать. Куки сами по себе доступны только после перезагрузки страницы. Такова их природа.

Там перезагрузка стоит вроде


$this->redirect(Yii::app()->request->urlReferrer);

А на хостинге точно такой же код?

Да! код идентичный. На локальном сервере (Denwer) все работает, на удаленном, все как бы работает , но есть необходимость делать refresh.

На данный момент я решил вопрос - размещая данные в сессии. Все работает - только для сессии нужно все равно создать куку.

http://maybeit.net. Вот сайт. Сверху справа есть переключатель. Он работает, но посредством сессии. А хотелось бы в куку записывать.

Так и не понял, что вы хотите.

Если поведение на сервере и локалке не соответствует друг другу, сверьте настройки php.ini.

Боюсь, тут даже не php.ini.

Вот туточки подобное обсуждают.

Ругаются на Varnish Cache.