Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cgi::session::driver::file(3) [centos man page]

CGI::Session::Driver::file(3)				User Contributed Perl Documentation			     CGI::Session::Driver::file(3)

NAME
CGI::Session::Driver::file - Default CGI::Session driver SYNOPSIS
$s = new CGI::Session(); $s = new CGI::Session("driver:file", $sid); $s = new CGI::Session("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 = new CGI::Session(); 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 perl v5.16.3 2008-07-16 CGI::Session::Driver::file(3)

Check Out this Related Man Page

CGI::Session::Driver::DBI(3pm)				User Contributed Perl Documentation			    CGI::Session::Driver::DBI(3pm)

NAME
CGI::Session::Driver::DBI - Base class for native DBI-related CGI::Session drivers SYNOPSIS
require CGI::Session::Driver::DBI; @ISA = qw( CGI::Session::Driver::DBI ); DESCRIPTION
In most cases you can create a new DBI-driven CGI::Session driver by simply creating an empty driver file that inherits from CGI::Session::Driver::DBI. That's exactly what sqlite does. The only reason why this class doesn't suit for a valid driver is its name isn't in lowercase. I'm serious! NOTES CGI::Session::Driver::DBI defines init() method, which makes DBI handle available for drivers in Handle - object attribute regardless of what "\%dsn_args" were used in creating session object. Should your driver require non-standard initialization you have to re-define init() method in your .pm file, but make sure to set 'Handle' - object attribute to database handle (returned by DBI->connect(...)) if you wish to inherit any of the methods from CGI::Session::Driver::DBI. STORAGE
Before you can use any DBI-based session drivers you need to make sure compatible database table is created for CGI::Session to work with. Following command will produce minimal requirements in most SQL databases: CREATE TABLE sessions ( id CHAR(32) NOT NULL PRIMARY KEY, a_session TEXT NOT NULL ); Your session table can define additional columns, but the above two are required. Name of the session table is expected to be sessions by default. You may use a different name if you wish. To do this you have to pass TableName as part of your " \%dsn_args ": $s = CGI::Session->new('driver:sqlite', undef, {TableName=>'my_sessions'}); $s = CGI::Session->new('driver:mysql', undef, { TableName=>'my_sessions', DataSource=>'dbi:mysql:shopping_cart'. }); To use different column names, change the 'create table' statement, and then simply do this: $s = CGI::Session->new('driver:pg', undef, { TableName=>'session', IdColName=>'my_id', DataColName=>'my_data', DataSource=>'dbi:pg:dbname=project', }); or $s = CGI::Session->new('driver:pg', undef, { TableName=>'session', IdColName=>'my_id', DataColName=>'my_data', Handle=>$dbh, }); DRIVER ARGUMENTS
Following driver arguments are supported: DataSource First argument to be passed to DBI->connect(). If the driver makes the database connection itself, it will also explicitly disconnect from the database when the driver object is DESTROYed. User User privileged to connect to the database defined in "DataSource". Password Password of the User privileged to connect to the database defined in "DataSource" Handle An existing DBI database handle object. The handle can be created on demand by providing a code reference as a argument, such as "<sub{DBI-"connect}>>. This way, the database connection is only created if it actually needed. This can be useful when combined with a framework plugin like CGI::Application::Plugin::Session, which creates a CGI::Session object on demand as well. "Handle" will override all the above arguments, if any present. TableName Name of the table session data will be stored in. LICENSING
For support and licensing information see CGI::Session perl v5.12.4 2011-07-08 CGI::Session::Driver::DBI(3pm)
Man Page