2012-02-28 8 views
1

Есть функция вроде php setcookie. Если нет, то как?Как установить куки с рысканьями

Редакция:

yaws_api:setcookie("lang","lang_value", "/"), 
yaws_api:find_cookie_val("lang", (A#arg.headers)#headers.cookie), 

find_cookie_val возвращается пустая строка, поскольку SetCookie штрафного набора coockie.

+0

Вы пытаетесь ввести свой заголовок вопроса в поисках вашего любимого поисковика коробка? Какие результаты это дало? Какая конкретная проблема у вас есть? – Mat

+0

@Mat, да, я сделал, но не могу заставить его работать, написал мой код в вопрос. – Yola

+0

У вас действительно есть код? Файл cookie, скорее всего, не может быть запрошен в том же запросе, который вы его настраиваете. Однако его следует искать в последующих запросах. – Mat

ответ

1

Этот сайт предоставляет некоторые примеры кода для фрамбезии и устанавливающих печенье: http://yaws.hyber.org/cookies.yaws

+1

Но @Baxter прав, код на страницах cookie.yaws объясняет, как это сделать. Вам не нужно напрямую устанавливать заголовок Set-Cookie, просто используйте yaws_api: set cookie. –

2

Наконец я сделал это через HTTP-заголовок:

out(A) -> 
% read 
    yaws_api:find_cookie_val("lang", (A#arg.headers)#headers.cookie), 

% send to browser 
    [{header,["Set-Cookie:","lang=ruler;","expires="++to_cookie_expire(60*60*24*30)++";"]}, 
    {html, ...}] 
end. 

to_cookie_expire(SecondsToLive) -> 
    Seconds = calendar:datetime_to_gregorian_seconds(calendar:local_time()), 
    DateTime = calendar:gregorian_seconds_to_datetime(Seconds + 
    SecondsToLive), httpd_util:rfc1123_date(DateTime). 
+0

Зачем вы это делаете? используйте yaws_api: set_cookie (имя, значение, параметры), которое вы можете протестировать в консоли отладки Chrome -> Сеть и щелкните запрос, затем перейдите на вкладку «cookie», там вы найдете куки запросов и ответов. – Aus

+0

Также может случиться так, что вы используете старую версию. полный ошибок. обновить до последнего. – Aus

+0

Забудьте свой первый комментарий, на самом деле, если вы используете yaws_api: set_cookie/3, вы не можете добавить больше материала в свой ответ, например json или html. Надеюсь, я делаю что-то неправильно, потому что это действительно непрактично. – Aus