cookies: работа через JavaScript

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
chang
Сообщения: 125
Зарегистрирован: 2010.12.03, 20:01

cookies: работа через JavaScript

Сообщение chang »

Здравствуйте
подскажите пожалуйста как покошерней читать и записывать cookies через JavaScript чтоб она осталась валидной для Yii ?
есть вообще в комплекте Уии такие ф-ции? ( например в каких-то виджетах поставляемых с коробки)
http://www.yiiframework.com/wiki/152/co ... nt-in-yii/ а то здесь как-то такое дело не осветили.

пример:
уии пишет куку в таком виде

Код: Выделить всё

32488a1d21324aeb5ffb0e2bbd39d49c955db117s:42:"{"current":0,"data":[true,true,true,true]}";
как ее прочитать, а главное записать, (через JS) чтоб в дальнейшем с ней работать через CHttpCookie ?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: cookies: работа через JavaScript

Сообщение anton44eg »

JQuery cookie. Входит в поставку с ферймворком. Подключается

Код: Выделить всё

Yii::app()->clientScript->registerCoreScript('cookie'); 
Почитать как работать с ним можно тут http://www.linkexchanger.su/2008/42.html
Аватара пользователя
resurtm
Сообщения: 299
Зарегистрирован: 2010.12.19, 09:13
Откуда: Казахстан, Алма-Ата
Контактная информация:

Re: cookies: работа через JavaScript

Сообщение resurtm »

anton44eg писал(а):JQuery cookie. Входит в поставку с ферймворком. Подключается

Код: Выделить всё

Yii::app()->clientScript->registerCoreScript('cookie'); 
Почитать как работать с ним можно тут http://www.linkexchanger.su/2008/42.html
jQuery Cookie там самый обычный, без интеграции с Yii. Под интеграцией имеется ввиду то, что кукисы будут устанавливаться правильные только в том случае, когда значение CHttpRequest::$enableCookieValidation равно false (кукисы не проверяются на то, что не были модифицированы сторонним способом, в обход приложения).

Проверка значений осуществляется тем образом, что к значению куки прибавляется её HMAC, а при чтении проверяется. jQuery Cookie на стороне клиента этого не делает. О чём и пишет топикстартер.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: cookies: работа через JavaScript

Сообщение samdark »

Если бы он это делал на стороне клиента, это могли бы делать и все остальные.
Аватара пользователя
resurtm
Сообщения: 299
Зарегистрирован: 2010.12.19, 09:13
Откуда: Казахстан, Алма-Ата
Контактная информация:

Re: cookies: работа через JavaScript

Сообщение resurtm »

Sam Dark писал(а):Если бы он это делал на стороне клиента, это могли бы делать и все остальные.
Решением могло бы быть введение дополнительных методов в CHttpRequest, которые *всегда* пишут и читают куки без учёта значения $enableCookieValidation (в документации, разумеется, предупредить, что они могут быть небезопасны). Можно, конечно, делать через $_COOKIE и setcookie в обход CHttpRequest, но будет страдать однородность (consistency) приложения. Или можно временно выключать $enableCookieValidation, что тоже не так уж и красиво.

Стоит ли поработать над этим на Гитхабе или гиблая идея? :)
Choo
Сообщения: 154
Зарегистрирован: 2011.09.20, 22:58

Re: cookies: работа через JavaScript

Сообщение Choo »

А в чём проблема с помощью jQuery делать асинхронные запросы на сервер, в которых будут выставляться куки?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: cookies: работа через JavaScript

Сообщение samdark »

Да, так можно.
chang
Сообщения: 125
Зарегистрирован: 2010.12.03, 20:01

Re: cookies: работа через JavaScript

Сообщение chang »

ну вот к примеру у меня что-то типа "карусели" которая показывает юзеру по кругу какую-то инфу ( например пачку банеров)
с кнопкой "закрыть" для временного удаления этой инфы (для конкретного юзера)
состояния "открыто/закрыто" пишу в куку ( через JS ), + нужна какая-то проверка/запись этой куки на стороне сервера

это дело в виде виджета, т.е. делать асинхронный запрос на сервак через JS на установку куки как-то не то

сделал это через прямое обращение к $_COOKIE+ setcookie
безопасность данной инфы в куке не играет никакой роли => ИМХО предложение выше
Решением могло бы быть введение дополнительных методов в CHttpRequest, которые *всегда* пишут и читают куки без учёта значения $enableCookieValidation (в документации, разумеется, предупредить, что они могут быть небезопасны).
было бы очень кстати -)
Ответить