Ruby 留言板之開發記錄 (2)


繼上篇的記錄之後,這應該是第 2 篇記錄來..再一次強調一下,這是無添加成份的純 Ruby 留言板 .. 絕無 RoR 的框架成份..

今晚主要加入了 : 後台管理 (回應留言,刪除留言,登入,登出處理)

不過話說在 COOKIE 的應用上,原來真的有很多不便,因為我沒有用到 cgi.out 的方法去生成表單,都用自己的 HTML 模版方式來生成,所以在存取 COOKIE 上, cgi.out(cookie) 的方法最終在我這初心者手上變得無用武之地,可能是因為功能尚淺的關係吧?

最終解決方法 : 自己寫了個函數,用 Perl 的方法處理掉了

感覺他不像 PHP 那樣,可以在沒輸出 HTML 前就 setcookie , 因為我都用

1
puts "Content-type: text/html; charset=utf-8\n\n"

這個方法來輸出為頁面的 (應該沒串錯字吧 = =||)

另外就是關於 CGI::Session 的設置問題,試了差不多三小時,好像都沒有結果,在我的核心文件中使用 include/init 中使用了這方法,之後在到 A 頁面的某一部份存入 Session 變量,再在 A 頁面的另一部份呼叫這個 Session , 傳回來的值是 nil 的 = = 真的不明白,有高手可以指點一下我嗎 = = ..如果還是沒法解決那我的萬惡驗證不應該要暫時改用另一個方法了,又或者學 COOKIE 那樣用另一種方法解決

include/init 大約代碼

1
2
3
4
5
6
7
require "cgi"
require "cgi/session"

POST = CGI.new
SESS = CGI::Session.new(POST)

puts "Content-type: text/html; charset=utf-8\n\n"

A(a.rb) 頁面大約原碼

1
2
3
4
5
6
7
8
9
require "include/init"

if POST['sk'] == 'a'
p SESS
else
SESS['name'] = "abc"

puts "<a href='a.rb?sk=a'></a>"
end

最後還記錄一下,一個怪異問題,不知道是 EditPlus 問題,還是 Ruby 本身問題,發言後,用 \n 改行,在 EditPlus 打開直接打開留言檔,是發現沒有換行的,可是再複制一次資料,再貼上空白文件上,那內容又會顯示多了一行空白行…怪怪的..是 OS 問題嗎 ? 感覺不太像