Latest web development tutorials

RubyのCGIセッション

セッションをクローズする必要が後にCGI :: Sessionが、ユーザーおよびCGI環境永続セッション状態として保存することができますので、あなたは、そのデータが、セッションが終了したとき、あなたはデータを削除する必要があり、メモリに書き込まれるようにすることができます。

#!/usr/bin/ruby

require 'cgi'
require 'cgi/session'
cgi = CGI.new("html4")

sess = CGI::Session.new( cgi, "session_key" => "a_test",
                              "prefix" => "rubysess.")
lastaccess = sess["lastaccess"].to_s
sess["lastaccess"] = Time.now
if cgi['bgcolor'][0] =~ /[a-z]/
  sess["bgcolor"] = cgi['bgcolor']
end

cgi.out{
  cgi.html {
    cgi.body ("bgcolor" => sess["bgcolor"]){
      "The background of this page"    +
      "changes based on the 'bgcolor'" +
      "each user has in session."      +
      "Last access time: #{lastaccess}"
    }
  }
}

アクセス」/cgi-bin/test.cgi?bgcolor=red」は、特定のページの背景色にジャンプします。

セッション・データは、prefixパラメータは、一時ファイルの接頭辞として、セッションの接頭辞を指定し、サーバー上の一時ファイルディレクトリに存在します。 サーバー上では簡単に別のセッションに一時ファイルを識別できるように。


CGI :: Sessionクラス

CGI :: SessionがユーザとCGI環境の永続的な状態を維持します。 メモリ内のセッションは、ハードディスク上に存在することができます。

クラスメソッド

RubyのクラスClassのCGI :: Sessionはセッションを作成するための簡単な方法を提供します。

CGI::Session::new( cgi[, option])

CGIは、新しいセッションを有効にし、対応するCGI :: Sessionオブジェクトを返します。 オプションは以下の値とすることができる任意のハッシュとすることができます。

  • SESSION_KEY:デフォルト_session_idによってセッションキーを保存します。
  • SESSION_ID:一意のセッションID。自動的に生成
  • new_session:あなたは、現在のセッションのための新しいセッションIDを作成する場合はtrueです。falseの場合、既存のセッションSESSION_IDのIDを使用します。 省略した場合、可能な場合、既存のセッション、または新しいものの作成を使用します。
  • database_manager:CGI ::セッション::ファイルストアまたはCGI ::であってもよいし、クラスのためのセッションを保存してセッション:: MemoryStore。デフォルトでは、ファイルストアです。
  • TMPDIR:ファイルストア、セッション障害格納ディレクトリについて。
  • 接頭辞:ファイルストア、セッションファイルのプレフィックスについて。

方法の例

いいえ。 メソッド説明
1 []
キーの値を返します。 例を参照してください。
2 [] =
特定のキー値を設定します。 例を参照してください。
3 削除します
Deleteメソッドは、基礎となるデータベース管理を呼び出します。 ファイルストアの場合は、セッションが含まれている物理ファイルを削除します。 MemoryStoreのために、メモリからのセッションデータを削除します。
4 更新
基礎となるデータベース管理の更新メソッドを呼び出します。 ファイルストアの場合、セッションがディスクに書き込まれます。 MemoryStore効果なしの場合。