Beefy Boxes and Bandwidth Generously Provided by pair Networks Ovid
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: CGI::Session/MySQL dependancy/version woes

by jdtoronto (Prior)
on Sep 16, 2006 at 12:38 UTC ( [id://573353]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to CGI::Session/MySQL dependancy/version woes

wfsp,

I'm on WinXP and the webhoster is solaris. Could it be a platform issue?

I have used (and still do in some legacy code) this module on WinXP (development), CentOS4 (current production) and Red Hat 7.3 (legacy production) and have never had an issue. To go a little further, I have never seen any dependency issues with this package.

Maybe if you could write us a little test case, I at least, would be happy to put it up on one of my servers and see what happens.

jdtoronto

  • Comment on Re: CGI::Session/MySQL dependancy/version woes

Replies are listed 'Best First'.
Re^2: CGI::Session/MySQL dependancy/version woes
by wfsp (Abbot) on Sep 17, 2006 at 03:19 UTC
    jdtoronto

    Thanks for your response.

    #!/usr/bin/perl #!c:\Perl\bin\perl.exe use strict; use warnings; use CGI::Carp qw(fatalsToBrowser); use lib qw(/path/to/lib_dev); use CGI::Simple; use CGI::Session; # v4.13 (was v3.11) use HTML::Template; use DBI; # v1.32 my $q = CGI::Simple->new() or die "can't create query object: $!"; my $dbh = DBI->connect('DBI:mysql:database=mydb;host=myhost', 'myuid', + 'mypwd') or die "can't connect to db"; my $sid = $q->cookie("CGISESSID") or undef; my $s = CGI::Session->new(undef, $sid, {Handle => $dbh}) or die CGI::Session->errstr; # corrected $_ = $q->param('a'); if (/next/) { next_page() } elsif (/prev/) { previous_page() } else { first_page() } sub next_page { my $first = $s->param('f'); $first += 20; $s->param('f', $first); print_output($first); } sub previous_page { my $first = $s->param('f'); $first -= 20; $s->param('f' => $first); print_output($first); } sub first_page{ $s->param('f', 0); print_output(0); } sub print_output { my ($first) = @_; my $file = 'tmpl/session.html'; my $t = HTML::Template->new( filename => $file ) or die "can't find $file: $!"; $t->param({first => $first}); print $s->header; print $t->output; }
    tmpl/session.html
    <html> <head> <title>sessions</title> </head> <body> <a href="/z/session.cgi?a=prev">previous</a> <a href="/z/session.cgi?a=next">next</a> <p><TMPL_VAR NAME=first></p> </body> </html>
    Response Headers - http://www.somedomain.org.uk/z/session.cgi?a=next Server: Zeus/4.2 Date: Sun, 17 Sep 2006 06:46:36 GMT Set-Cookie: CGISESSID=a26c68329dbf87f6e5d69ff416ab1314; path=/ Content-Type: text/html; charset=ISO-8859-1 Transfer-Encoding: chunked 200 OK
    Update

    Adding:

    die Dumper $s;
    to the next_page sub produces:
    Software error: $VAR1 = bless( { '_API_3' => { 'ID' => 'MD5', 'SERIALIZER' => 'Default', 'DRIVER' => 'File' }, '_STATUS' => 1, '_file_path' => '/cgisess_d71ef41aa899089fdf39190ea38 +0d10e', '_DATA' => { '_SESSION_ETIME' => undef, '_SESSION_ID' => '86c76f868575c30ccd29e3 +ebb7ca3c03', '_SESSION_ATIME' => 1158477726, '_SESSION_EXPIRE_LIST' => {}, '_SESSION_REMOTE_ADDR' => '86.139.50.197 +', '_SESSION_CTIME' => 1158477726 }, '_OPTIONS' => [ 'd71ef41aa899089fdf39190ea380d10e', { 'Handle' => bless( {}, 'DBI::db' ) } ] }, 'CGI::Session::File' );
    Update 2

    After uploading Session.pm (see comment re version) and the Session dir:

    Software error: $VAR1 = bless( { '_STATUS' => 1, '_OBJECTS' => { 'id' => 'CGI::Session::ID::md5', 'driver' => bless( { 'Directory' => ' +/tmp', 'NoFlock' => 0, 'UMask' => 432, 'Handle' => bles +s( {}, 'DBI::db' ) }, 'CGI::Session:: +Driver::file' ) }, '_CLAIMED_ID' => 'd71ef41aa899089fdf39190ea380d10e', '_DATA' => { '_SESSION_ID' => 'cf417d8baa05dfe64bcc53 +088b736740', '_SESSION_ATIME' => 1158478795, '_SESSION_REMOTE_ADDR' => '86.139.50.197 +', '_SESSION_CTIME' => 1158478795 }, '_QUERY' => undef, '_DRIVER_ARGS' => $VAR1->{'_OBJECTS'}{'driver'}, '_DSN' => { 'serializer' => 'default', 'id' => 'md5', 'driver' => 'file' } }, 'CGI::Session' );
    After removing the die statement
    Undefined subroutine &Scalar::Util::refaddr called at /xxx/lib_dev/CGI +/Session/Serialize/default.pm line 53.
    Scalar::Util is there (v1.18) and it contains sub refaddr.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://573353]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.