The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


ZM::Session - sessions manager for CGI

VERSION v 0.2.0

Recent Changes:

Added sessions this user's IP support.


Added 'nocontent' parametr to method start().


Changed variable's manipulation methods.


WOW! It's working!!! :-)


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:

$s = new ZM::Session();

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.


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->set_path('/home/user/sessions/');

    print $s->get("zm"); #should print out "abc"

    if ($s->is_set("zm"))
                print "Is set";
                print "Not set";

    # 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.