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