
ZM::Session - sessions manager for CGI

Session.pm v 0.2.0

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.

The following public methods are availible:
The constructor, this starts the ball rolling. It can take the following hash-style parameters:
how long the session lasts, in seconds.
the directory where you want to store your session files.
if you want to give the session a non-random name, use this parameter as well.
additional headers.
if you want check user IP address. Create new session if IP was changed.
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.
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.
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.
Check to see if the variable is defined. Returns '1' for true, '0' for false.
This method allows you to undefine variable.
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.
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()'.
Calling this method will wipe all the variables stored in your session.
This method deletes the session file, destroys all the evidence, and skips bail.

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 2002 Zet Maximum

Zet Maximum ltd. http://www.zmaximum.ru/