作者fuha (mimi)
看板Ruby
標題Re: [問題] 想問一下在ruby下 用 session
時間Thu Oct 18 22:57:15 2007
我來回答我自己好了
我用一些空閒的時間 終於把問題給解決了
我把重點給寫出來~ 給日後有人需要自己寫簡單的 CGI
做個參考
第一個重點就是 :
如果有用到 erb 千萬要記得在輸出 rhtml 前
記得先送出 header erb只會送出兩三行不重要的header
尤其是有用到 session
ex.
contentype = "Content-Type: text/html; charset=UTF-8\r\n"
setcookie = "Set-Cookie: rubycgi=#{@sess.session_id}; path=/cgi-bin\r\n"
header= contentype + setcookie
print header
其中如果你的程式有用到 session 或是 cookie 千萬要記得要送出 "Set-Cookie: xxx"
不然 browser就不會收到 Cookie
這個部份就是有用到 erb 時要注意的
如果是用 cgi.out 的話 ruby 會自動幫你處理?(應該是..根據我的試驗)
除非妳需要變動送出的資料...
第二個部份就是在 new 出session 時要注意程式會不理 browser 送出的 cookies
而一直建立起新的 session
所以在 new 時 第一次建立 session時可以這樣
ex.
cgi = CGI.new
sess = CGI::Session.new(cgi,
"new_seesion" => true,
"session_id" => "1234",
"session_key" => "rubycgi",
"prefix" => "ruby")
建立好 session 後 之後你要利用到 browser 送來的 cookies
來檢查是否已建立好 session 時 只需要
ex.
cgi = CGI.new
sess = CGI::Session.new(cgi,
"session_key" => "rubycgi",
"prefix" => "ruby")
這樣就不會一直重覆建立新的 session
就這兩個東西害我卡好久~....
網路上可以參考的東西又很少~
所以分享一下心得給大家 不要像我笨笨的弄了很久
所以我就騙了一些p幣..
--
▁▁
▕寧寧▏
▕肥肥▏
 ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.114.78