The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.

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/