セッションを使うCGIの簡単なサンプル
セッションを使うCGIの簡単なサンプルを書いてみました。
- CGI::Sessionを使って簡単に使えます。
- データの格納先や形式をオプションでいろいろ変更できます。詳細はCGI::Sessionの解説を参照。
- 以下の例では、特にオプションは指定せずデフォルトで使ってます。
- HTMLデータの出力は、CGI#outで行なうこと!
- 「puts "hoge"」とかしていると、クッキーの設定が出力されないため、セッションが有効になりません。(10分くらいはまった・・・。)
#!/usr/bin/ruby -- require 'cgi' require 'cgi/session' cgi = CGI.new # セッションを作成 # デフォルトでは、一時ファイル領域のテキストファイルで記録されるらしい。 session = CGI::Session.new(cgi) if ( cgi["operation"] == "close" ) # セッションを削除する。 session.delete cgi.out{ "delete session." } else # セッションから値を取り出す。 value = session['value'] value = "0" if value == nil # 初回アクセス時などデータが未設定の場合nilになる。 # 値を出力 # # ※cgi#outを利用して出力すること! # 「puts value」とかすると、クッキーの設定が出力されず、セッションが有効にならない。 cgi.out{ value } # 値を更新して記録する。 value = (value.to_i + 1).to_s session['value'] = value end
確認はこちらから。リロードすると数字が増えていきます。また、ここにアクセスすると、セッションがリセットされます。