NAME
ZM::Session - sessions manager for CGI
VERSION
Session.pm v 0.2.0
Recent Changes:
0.1.0
Added sessions this user's IP support.
0.0.3
Added 'nocontent' parametr to method start().
0.0.2
Changed variable's manipulation methods.
0.0.1
WOW! It's working!!! :-)
DESCRIPTION
This module can be used anywhere you need sessions. As a session management module, it uses files with a configurable lifetime to handle your session data. For those of you familiar with PHP, you will notice that the session syntax is a little bit similar. This module storing session ID at users COOKIES.
METHODS
The following public methods are availible:
$s = new ZM::Session();
The constructor, this starts the ball rolling. It can take the
following hash-style parameters:
lifetime
how long the session lasts, in seconds.
path
the directory where you want to store your session files.
id if you want to give the session a non-random name, use this
parameter as well.
head
additional headers.
check_ip
if you want check user IP address. Create new session if IP was
changed.
$s->start();
This creates a session and set COOKIE or resumes an old one if
COOKIE exist and session file alive. This will return '1' if this is
a new session, and '0' if it's resuming an old one. If you defined
no values in the 'new()' call, then the session will start with a
default lifetime of 600 seconds, a path of /tmp, and a random string
for an id. This method have one argument - 'nocontent'. This
argument allow you print Content-type self.
$s->set_path();
Set the session path or, without an argument, return the current
session path. Used with an argument, this performs the same thing as
the 'path' parameter in the constructor.
$s->id();
If the session id exists, this will return the current session id -
useful if you want to maintain state with a cookie! If you pass a
parameter, it acts the same as new( id => 'some_session_name'),
i.e., it creates a session with that id.
$s->is_set();
Check to see if the variable is defined. Returns '1' for true, '0'
for false.
$s->unset();
This method allows you to undefine variable.
$s->set();
This is where you actually define your variables. This method takes
two arguments: the first is the name of the variable, and the second
is the value of the variable.
$s->get();
This method allows you to access the data that you have saved in a
session - just pass it the name of the variable that you 'set()'.
$s->unsetall();
Calling this method will wipe all the variables stored in your
session.
$s->destroy();
This method deletes the session file, destroys all the evidence, and
skips bail.
EXAMPLES
Session creation and destruction
use strict;
use ZM::Session;
my $s = new ZM::Session(lifetime=>10,path=>"/home/user/sessions/",id=>$cgi->param("SID"),check_ip=>"yes");
$s->start();
# $s->set_path('/home/user/sessions/');
$s->set("zm","abc");
print $s->get("zm"); #should print out "abc"
if ($s->is_set("zm"))
{
print "Is set";
}
else
{
print "Not set";
}
# unset "zm"
$s->unset("zm");
print $s->get("zm"); #should print out empty string
$s->unset(); # wipe all variables
$s->destroy(); # delete session with this ID
COPYRIGHT
Copyright 2002 Zet Maximum
AUTHOR
Zet Maximum ltd. http://www.zmaximum.ru/