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
Show source
Register or log in to add new notes.