Walter Vargas wrote:
Please I need o good Documentation Project about Apache::Session Module,
and Mod_Perl 2 in general.
perldoc Apache::Session

-- theres nothing specific relating to mod_perl2 that different from mod_perl1 relating to this particular module.

startup.pl:
[snipped]
## CORE PERL Modules
use strict;
use warnings FATAL => 'all';
use Carp;

## Core MP2 Modules
use mod_perl2;
use Apache2::Const -compile =>
        qw(OK REDIRECT FORBIDDEN DECLINED HTTP_UNAUTHORIZED);
use ModPerl::MethodLookup ();

ModPerl::MethodLookup::preload_all_modules();

use Apache2::Status ();
use Apache::DBI ();
#$Apache::DBI::DEBUG = 2;

## Libapreqq
use APR::Request ();
use APR::Request::Apache2 ();
use APR::Request::CGI ();
use APR::Request::Cookie ();
use APR::Request::Error ();
use APR::Request::Hook ();
use APR::Request::Param ();
use APR::Request::Parser ();
use Apache2::Upload ();
use Apache2::Request ();
use Apache2::Cookie ();

## CPAN
use Apache::Session ();
use Apache::Session::MySQL ();
use DBI ();

## libs
use My::Foo ();
use My::Const ();

Apache::DBI->connect_on_init(
  $My::Const::dsn, $My::Const::user,
  $My::Const::pass, \%My::Const::attrs
);

1;
=---=

My/Foo.pm:
package My::Foo;
#mp2
use Apache2::RequestRec ();
use Apache2::Const -compile => qw(OK);

#libapreq
use APR::Request ();
use APR::Request::Apache2 ();
use APR::Request::Cookie ();

#cpan
use Apache::Session::MySQL ();

#mine
use My::Const ();
use My::Util ();

sub handler {
  my $r = shift;

  my $req = APR::Request::Apache2->handle($r);

  my $dbh = My::Util->get_session_dbh();

  # Session Tracking -- make a new one
  tie my %session, 'Apache::Session::MySQL', undef, {
    Handle     => $dbh,
    LockHandle => $dbh
  };

  $session{time} = time();
  $session{X} = 'Y';

  my $cookie =
      APR::Request::Cookie->new(
        $r->pool,
        name   => My::Const::SESSION_CCOKIE_NAME,
        value  => $session{_session_id},
        path   => MY::Const::URL_BASE,
        domain => My::Const::COOKIE_DOMAIN,
        expires => "+10y",
      );

  $r->err_headers_out->add('Set-Cookie' => $cookie->as_string);

  # XXX ......

  return Apache2::Const::OK;
}

1;
=---=

My/Later.pm:
packate My::Later;

#core
use strict;
use warnings FATAL => 'all'; no warnings qw(redefine);
use Carp;

#mp2
use Apache2::RequestRec ();
use Apache2::Const -compile => qw(OK);

#libapreq
use Apache2::Cookie ();

#cpan
use Apache::Session::MySQL ();
use DBI ();

#mine
use My::Const ();
use My::Util ();

sub handler {
  my $r = shift;

  my $jar = Apache2::Cookie::Jar->new($r);

  my $session_cookie = $jar->cookies(My::Const::SESSION_COOKIE_NAME);

  my $dbh = My::Util->get_session_dbh();

  my $session_id = $session_cookie->value;
  tie my %session, 'Apache::Session::MySQL', $session_id, {
      Handle     => $dbh,
      LockHandle => $dbh,
   };

   # XXXX .........

   return Apache2::Const::OK;
}

1;
=---=

in mysql:
show create table sessions \G
*************************** 1. row ***************************
       Table: sessions
Create Table: CREATE TABLE `sessions` (
  `id` char(32) NOT NULL,
  `a_session` text,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.08 sec)

HTH

------------------------------------------------------------------------
Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708
Consultant / http://p6m7g8.net/Resume/resume.shtml
Senior Software Engineer - TicketMaster - http://ticketmaster.com
1024D/EC88A0BF 0DE5 C55C 6BF3 B235 2DAB  B89E 1324 9B4F EC88 A0BF

I never had a dream come true
'Til the day that I found you.
Even though I pretend that I've moved on
You'll always be my baby.
I never found the words to say
You're the one I think about each day
And I know no matter where life takes me to
A part of me will always be...
A part of me will always be with you.

Reply via email to