English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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"]){ "このページの背景" + "'bgcolor'に基づいて変更されます" + "各ユーザーがセッションを持っています" + "最終アクセス時間: #{lastaccess}" } } }
アクセス "/cgi-bin/test.cgi?bgcolor=red"とアクセスすると、指定された背景色のページにジャンプします。
セッションデータはサーバーの一時ファイルディレクトリに存在し、prefixパラメータはセッションのプレフィックスを指定し、一時ファイルのプレフィックスとして使用されます。これにより、サーバー上で異なるセッションの一時ファイルを簡単に識別できます。
CGI::Sessionは、ユーザーとCGI環境の持続可能な状態を保持します。セッションはメモリ内、またはハードディスク上に存在できます。
RubyクラスClass CGI::Sessionは、セッションを作成するための簡単なメソッドを提供します:
CGI::Session::new( cgi[, option])
新しいCGIセッションを有効にし、対応するCGI::Sessionオブジェクトを返します。オプションはオプションのハッシュで、以下の値が指定できます:
session_key: セッションを保存するキー名です。デフォルトは_session_idです。
session_id: ユニークなセッションID。自動生成されます。
new_session: trueの場合、現在のセッションに対して新しいセッションIDを作成します。falseの場合、session_idを通じて既存のセッションIDを使用します。 このパラメータを省略した場合、利用可能なセッションがあればそれを使用し、なければ新しいセッションを作成します。
database_manager: セッションを保存するクラスであり、CGI::Session::FileStoreまたはCGI::Session::MemoryStoreのいずれかです。デフォルトではFileStoreです。
tmpdir: FileStoreの場合、セッションのエラーストレージディレクトリです。
prefix: FileStoreの場合、セッションファイルのプレフィックスです。
番号 | メソッドの説明 |
---|---|
1 | [ ] 指定されたキーの値を返します。例を参照してください。 |
2 | [ ]= 指定されたキーの値を設定します。例を参照してください。 |
3 | delete 基底データベース管理の削除メソッドを呼び出します。FileStoreの場合、セッションを含む物理ファイルを削除します。MemoryStoreの場合は、メモリからセッションデータを削除します。 |
4 | update 基底データベース管理の更新メソッドを呼び出します。FileStoreの場合、セッションをディスクに書き込みます。MemoryStoreの場合は効果がありません。 |