作者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