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/

