new
new(request, option={})
public
Create a new CGI::Session object for request.
request is an instance of the CGI class (see cgi.rb). option is a hash of options for initialising this CGI::Session instance. The following options are recognised:
session_key |
the parameter name used for the session id. |
Defaults to '_session_id'.
session_id |
the session id to use. If not provided, then |
it is retrieved from the +session_key+ parameter of the request, or automatically generated for a new session.
new_session |
if true, force creation of a new session. If not set, |
a new session is only created if none currently exists. If false, a new session is never created, and if none currently exists and the +session_id+ option is not set, an ArgumentError is raised.
database_manager |
the name of the class providing storage facilities |
for session state persistence. Built-in support is provided for +FileStore+ (the default), +MemoryStore+, and +PStore+ (from cgi/session/pstore.rb). See the documentation for these classes for more details.
The following options are also recognised, but only apply if the session id is stored in a cookie.
session_expires |
the time the current session expires, as a |
+Time+ object. If not set, the session will terminate when the user's browser is closed.
session_domain |
the hostname domain for which this session is valid. |
If not set, defaults to the hostname of the server.
session_secure |
if true, this session will only work over HTTPS. |
session_path |
the path for which this session applies. Defaults |
to the directory of the CGI script.
option is also passed on to the session storage class initializer; see the documentation for each session storage class for the options they support.
The retrieved or created session is automatically added to request as a cookie, and also to its output_hidden table, which is used to add hidden input elements to forms.
WARNING the output_hidden fields are surrounded by a <fieldset> tag in HTML 4 generation, which is not invisible on many browsers; you may wish to disable the use of fieldsets with code similar to the following (see http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/37805)
cgi = CGI.new("html4") class << cgi undef_method :fieldset end