NAME¶
CGI::Session::Driver::file - Default CGI::Session driver
SYNOPSIS¶
$s = CGI::Session->new();
$s = CGI::Session->new("driver:file", $sid);
$s = CGI::Session->new("driver:file", $sid, {Directory=>'/tmp'});
DESCRIPTION¶
When CGI::Session object is created without explicitly setting
driver,
file will be assumed.
file - driver will store session data in
plain files, where each session will be stored in a separate file.
Naming conventions of session files are defined by
$CGI::Session::Driver::file::FileName global variable. Default value of this
variable is
cgisess_%s, where %s will be replaced with respective
session ID. Should you wish to set your own FileName template, do so before
requesting for session object:
use CGI::Session::Driver::file; # This line is mandatory.
# Time passes...
$CGI::Session::Driver::file::FileName = "%s.dat";
$s = CGI::Session->new();
For backwards compatibility with 3.x, you can also use the variable name
$CGI::Session::File::FileName, which will override the one above.
DRIVER ARGUMENTS¶
If you wish to specify a session directory, use the
Directory option,
which denotes location of the directory where session ids are to be kept. If
Directory is not set, defaults to whatever
File::Spec->
tmpdir() returns. So all the three lines in the SYNOPSIS
section of this manual produce the same result on a UNIX machine.
If specified
Directory does not exist, all necessary directory hierarchy
will be created.
By default, sessions are created with a umask of 0660. If you wish to change the
umask for a session, pass a
UMask option with an octal representation
of the umask you would like for said session.
NOTES¶
If your OS doesn't support flock, you should understand the risks of going
without locking the session files. Since sessions tend to be used in
environments where race conditions may occur due to concurrent access of files
by different processes, locking tends to be seen as a good and very necessary
thing. If you still want to use this driver but don't want flock, set
$CGI::Session::Driver::file::NoFlock to 1 or pass "NoFlock => 1"
and this driver will operate without locks.
LICENSING¶
For support and licensing see CGI::Session