Ruby-cgi-sessions
提供:Dev Guides
Ruby-CGIセッション
- CGI
- Sessionは、CGI環境でWebユーザーの永続的な状態を維持します。 セッションは使用後に閉じてください。これにより、セッションにデータが確実にストアに書き込まれます。 セッションを完全に終了したら、それを削除する必要があります。
#!/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 {
cgil {
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」にアクセスすると、URLを介して新しい「bgcolor」が指定されるまで、連続するヒットごとに1人のユーザーのページが赤になります。
セッションデータは各セッションの一時ファイルに保存され、プレフィックスパラメーターはファイル名の前に追加する文字列を割り当てるため、サーバーのファイルシステムでセッションを簡単に識別できます。
- CGI
- Sessionには、文字列以外のオブジェクトを保存する機能や、複数のサーバーにまたがるセッションストレージなど、多くの機能がまだありません。
- === クラスCGI
- Session
- CGI
- Sessionは、CGI環境でWebユーザーの永続的な状態を維持します。 セッションは、メモリに常駐することも、ディスクに保存することもできます。
クラスメソッド
- Rubyクラス_Class CGI
- Session_は、セッションを作成するための単一のクラスメソッドを提供します-
CGI::Session::new( cgi[, option])
- 新しいCGIセッションを開始し、対応するCGI
- Sessionオブジェクトを返します。 _option_は、次の1つ以上を指定するオプションハッシュである可能性があります-
- session_key -セッションIDを保持するキー名。 デフォルトは_session_idです。
- session_id -一意のセッションID。 自動生成
- new_session -trueの場合、このセッションの新しいセッションIDを作成します。 falseの場合、session_idで識別される既存のセッションを使用します。 省略した場合、既存のセッションが使用可能であればそれを使用し、そうでない場合は新しいセッションを作成します。
- * database_manager -セッションを保存するために使用するクラス。 CGI
- Session :: FileStoreまたはCGI :: Session :: MemoryStoreの場合があります。 デフォルトはFileStoreです。
- tmpdir -FileStoreの場合、セッションファイルのディレクトリ。
- prefix -FileStoreの場合、セッションファイル名のプレフィックス。
インスタンスメソッド
Sr.No. | Methods & Description |
---|---|
1 |
[ ] 指定されたキーの値を返します。 上記の例を参照してください。 |
2 |
[ ]= 指定されたキーの値を設定します。 上記の例を参照してください。 |
3 |
delete 基になるデータベースマネージャーの削除メソッドを呼び出します。 FileStoreの場合、セッションを含む物理ファイルを削除します。 MemoryStoreの場合、メモリからセッションを削除します。 |
4 |
update 基になるデータベースマネージャーの更新メソッドを呼び出します。 FileStoreの場合、セッションデータをディスクに書き込みます。 MemoryStoreでは効果がありません。 |