Re[6]: Problem with PerlTransHandler
It's my original very simple script: package Apache::StripSession; use strict; use Apache; use Apache::Constants qw(:common); use DBI; sub handler { my $r = shift; my $dbh = DBI->connect('dbi:mysql:altboards', 'root', ''); # Session return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; warn "$1, $2"; $r->subprocess_env(SESSION => $1); $r->uri($2); return DECLINED; } 1; When I try to get page from http://localhost/session/123343..12121/index it work perfectly. And this string has appeared in error.log - "12345678901234567890123456789012, /index at " But if I comment out string 'warn "$1, $2"; ' the same script with the same url doesn't work. $2 is undefined and browser tell me something like "www.localhost could not be found ..." Why??? __END__ -Original Message- From: "Raf" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Date: Fri, 27 Jun 2003 15:35:16 - (GMT) Subject: Re: Re[4]: Problem with PerlTransHandler > > Sergey V. Stashinskas said: > > Problem is not in connection with database. > > When I try to connect then $2 regexp variable becomes undefined and > > script can not redirect anywhere. ($r->uri($2)) But when script is not > > connected with database all works perfectly and this variable has a real > > defined value. I can not understand this ... > > What are you actually getting in your logs? Are you sure that it's even > getting to $2? My thought is this: > > * if you don't get a $dbh back, then under strict you should get a > cock-up reporting that it can't run the method disconnect on an undefined > reference. > > Can't see why this would happen. How you tried to dump the uri with a > STDERR? Noticed that you're from Russia, so perhaps it's some kind of > character encoding/local problem, since you're matching against latin > character classes? Can weird character creep into your session string? > > Just thoughts. Final thought is running it through Apache::DB if you > fancy building it. Just a thought. > > Cheers, > > R. > > > > > > > > > > Original source: > > package Apache::StripSession; > > use strict; > > use Apache; > > use Apache::Constants qw(:common); > > > > sub handler { > > my $r = shift; > > > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > > $dbh->disconnect; > > return DECLINED unless $r->uri =~ > > /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > > > $r->subprocess_env(SESSION => $1); > > $r->uri($2); > > > > return DECLINED; > > } > > > > 1; > > > > -Original Message- > > From: "Raf" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Date: Fri, 27 Jun 2003 15:09:13 - (GMT) > > Subject: Re: Re[2]: Problem with PerlTransHandler > > > >> > >> Sergey V. Stashinskas said: > >> > If these lines are commented out then script is working ok. > >> > > >> > -Original Message- > >> > From: <[EMAIL PROTECTED]> > >> > To: "Sergey V. Stashinskas " > >> > <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]> Date: Fri, 27 > >> Jun 2003 16:39:12 +0300 > >> > Subject: RE: Problem with PerlTransHandler > >> > > >> >> > >> >> Have you tried to comment out the 2 DBI lines like this: > >> >> > >> >> #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > >> >> #$dbh->disconnect; > >> > >> Can't find your original post, however try doing something like: > >> > >> $dbh->disconnect if ref($dbh); > >> > >> or: > >> > >> if (ref $dbh) { > >> $dbh->disconnect; > >> else { > >> ## CHECK LOGS for this > >> print STDERR "\n Failed to connect \n"; > >> }; > >> > >> Cheers, > >> > >> Raf > >> > >> > >> > >> > > > >
Re: Re[4]: Problem with PerlTransHandler
Sergey V. Stashinskas said: > Problem is not in connection with database. > When I try to connect then $2 regexp variable becomes undefined and > script can not redirect anywhere. ($r->uri($2)) But when script is not > connected with database all works perfectly and this variable has a real > defined value. I can not understand this ... What are you actually getting in your logs? Are you sure that it's even getting to $2? My thought is this: * if you don't get a $dbh back, then under strict you should get a cock-up reporting that it can't run the method disconnect on an undefined reference. Can't see why this would happen. How you tried to dump the uri with a STDERR? Noticed that you're from Russia, so perhaps it's some kind of character encoding/local problem, since you're matching against latin character classes? Can weird character creep into your session string? Just thoughts. Final thought is running it through Apache::DB if you fancy building it. Just a thought. Cheers, R. > Original source: > package Apache::StripSession; > use strict; > use Apache; > use Apache::Constants qw(:common); > > sub handler { > my $r = shift; > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > $dbh->disconnect; > return DECLINED unless $r->uri =~ > /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > $r->subprocess_env(SESSION => $1); > $r->uri($2); > > return DECLINED; > } > > 1; > > -Original Message- > From: "Raf" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Date: Fri, 27 Jun 2003 15:09:13 - (GMT) > Subject: Re: Re[2]: Problem with PerlTransHandler > >> >> Sergey V. Stashinskas said: >> > If these lines are commented out then script is working ok. >> > >> > -Original Message- >> > From: <[EMAIL PROTECTED]> >> > To: "Sergey V. Stashinskas " >> > <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]> Date: Fri, 27 >> Jun 2003 16:39:12 +0300 >> > Subject: RE: Problem with PerlTransHandler >> > >> >> >> >> Have you tried to comment out the 2 DBI lines like this: >> >> >> >> #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); >> >> #$dbh->disconnect; >> >> Can't find your original post, however try doing something like: >> >> $dbh->disconnect if ref($dbh); >> >> or: >> >> if (ref $dbh) { >> $dbh->disconnect; >> else { >> ## CHECK LOGS for this >> print STDERR "\n Failed to connect \n"; >> }; >> >> Cheers, >> >> Raf >> >> >> >>
Re[4]: Problem with PerlTransHandler
Problem is not in connection with database. When I try to connect then $2 regexp variable becomes undefined and script can not redirect anywhere. ($r->uri($2)) But when script is not connected with database all works perfectly and this variable has a real defined value. I can not understand this ... Original source: package Apache::StripSession; use strict; use Apache; use Apache::Constants qw(:common); sub handler { my $r = shift; my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); $dbh->disconnect; return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; $r->subprocess_env(SESSION => $1); $r->uri($2); return DECLINED; } 1; -Original Message- From: "Raf" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Date: Fri, 27 Jun 2003 15:09:13 - (GMT) Subject: Re: Re[2]: Problem with PerlTransHandler > > Sergey V. Stashinskas said: > > If these lines are commented out then script is working ok. > > > > -Original Message- > > From: <[EMAIL PROTECTED]> > > To: "Sergey V. Stashinskas " > > <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]> Date: Fri, 27 Jun > > 2003 16:39:12 +0300 > > Subject: RE: Problem with PerlTransHandler > > > >> > >> Have you tried to comment out the 2 DBI lines like this: > >> > >> #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > >> #$dbh->disconnect; > > Can't find your original post, however try doing something like: > > $dbh->disconnect if ref($dbh); > > or: > > if (ref $dbh) { > $dbh->disconnect; > else { > ## CHECK LOGS for this > print STDERR "\n Failed to connect \n"; > }; > > Cheers, > > Raf > > > >
Re: Re[2]: Problem with PerlTransHandler
Sergey V. Stashinskas said: > If these lines are commented out then script is working ok. > > -Original Message- > From: <[EMAIL PROTECTED]> > To: "Sergey V. Stashinskas " > <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]> Date: Fri, 27 Jun > 2003 16:39:12 +0300 > Subject: RE: Problem with PerlTransHandler > >> >> Have you tried to comment out the 2 DBI lines like this: >> >> #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); >> #$dbh->disconnect; Can't find your original post, however try doing something like: $dbh->disconnect if ref($dbh); or: if (ref $dbh) { $dbh->disconnect; else { ## CHECK LOGS for this print STDERR "\n Failed to connect \n"; }; Cheers, Raf
Re[2]: Problem with PerlTransHandler
If these lines are commented out then script is working ok. -Original Message- From: <[EMAIL PROTECTED]> To: "Sergey V. Stashinskas " <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]> Date: Fri, 27 Jun 2003 16:39:12 +0300 Subject: RE: Problem with PerlTransHandler > > Have you tried to comment out the 2 DBI lines like this: > > #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > #$dbh->disconnect; > > and is still not working? You really need the database connection? > > Lian > > > > -Original Message- > > From: Sergey V. Stashinskas [mailto:[EMAIL PROTECTED] > > Sent: Friday, June 27, 2003 1:48 PM > > To: [EMAIL PROTECTED] > > Subject: Problem with PerlTransHandler > > > > > > Hi all, > > > > Excuse me for my poor English because I'm from Russia. > > > > I have the problem with url translation. > > There are 2 scripts to do it. > > 1st script work perfectly, but 2nd failed. > > Only difference between them is string "my $dbh = DBI->connect..."; > > I use Apche::DBI but without this module the same thing happens. > > Why? > > > > 1st: > > package Apache::StripSession > > use strict; > > use Apache; > > use Apache::Constants qw(:common); > > > > sub handler { > > my $r = shift; > > > > return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > > > $r->subprocess_env(SESSION => $1); > > $r->uri($2); > > > > return DECLINED; > > } > > > > 2nd: > > package Apache::StripSession; > > use strict; > > use Apache; > > use Apache::Constants qw(:common); > > > > sub handler { > > my $r = shift; > > > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > > $dbh->disconnect; > > return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > > > $r->subprocess_env(SESSION => $1); > > $r->uri($2); > > > > return DECLINED; > > } > > > > > >
RE: Problem with PerlTransHandler
Have you tried to comment out the 2 DBI lines like this: #my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); #$dbh->disconnect; and is still not working? You really need the database connection? Lian > -Original Message- > From: Sergey V. Stashinskas [mailto:[EMAIL PROTECTED] > Sent: Friday, June 27, 2003 1:48 PM > To: [EMAIL PROTECTED] > Subject: Problem with PerlTransHandler > > > Hi all, > > Excuse me for my poor English because I'm from Russia. > > I have the problem with url translation. > There are 2 scripts to do it. > 1st script work perfectly, but 2nd failed. > Only difference between them is string "my $dbh = DBI->connect..."; > I use Apche::DBI but without this module the same thing happens. > Why? > > 1st: > package Apache::StripSession > use strict; > use Apache; > use Apache::Constants qw(:common); > > sub handler { > my $r = shift; > > return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > $r->subprocess_env(SESSION => $1); > $r->uri($2); > > return DECLINED; > } > > 2nd: > package Apache::StripSession; > use strict; > use Apache; > use Apache::Constants qw(:common); > > sub handler { > my $r = shift; > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > $dbh->disconnect; > return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; > > $r->subprocess_env(SESSION => $1); > $r->uri($2); > > return DECLINED; > } > >
Re[2]: Problem with PerlTransHandler
DBI->connect is working ok. Strange problem is with regexp. If "DBI->connect ..." string is present in script then $1 ok but $2 is undefined. Otherwise $1 and $2 have real normal values. -Original Message- From: Thomas Klausner <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Date: Fri, 27 Jun 2003 14:56:22 +0200 Subject: Re: Problem with PerlTransHandler > > Hi! > > On Fri, Jun 27, 2003 at 02:47:45PM +0400, "Sergey V. Stashinskas" wrote: > > > sub handler { > > my $r = shift; > > > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > > $dbh->disconnect; > > maybe the DBI->connect isn't working and thus your script dies / throws some > error ? > > I'd try to check if connect works, if $dbh works, etc. > > -- > #!/usr/bin/perl http://domm.zsi.at > for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/} >
Re: Problem with PerlTransHandler
Hi! On Fri, Jun 27, 2003 at 02:47:45PM +0400, "Sergey V. Stashinskas" wrote: > sub handler { > my $r = shift; > > my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); > $dbh->disconnect; maybe the DBI->connect isn't working and thus your script dies / throws some error ? I'd try to check if connect works, if $dbh works, etc. -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
Problem with PerlTransHandler
Hi all, Excuse me for my poor English because I'm from Russia. I have the problem with url translation. There are 2 scripts to do it. 1st script work perfectly, but 2nd failed. Only difference between them is string "my $dbh = DBI->connect..."; I use Apche::DBI but without this module the same thing happens. Why? 1st: package Apache::StripSession use strict; use Apache; use Apache::Constants qw(:common); sub handler { my $r = shift; return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; $r->subprocess_env(SESSION => $1); $r->uri($2); return DECLINED; } 2nd: package Apache::StripSession; use strict; use Apache; use Apache::Constants qw(:common); sub handler { my $r = shift; my $dbh = DBI->connect('dbi:mysql:db', 'user', 'pswd'); $dbh->disconnect; return DECLINED unless $r->uri =~ /^\/session\/([a-zA-Z0-9]{32})(.*)/; $r->subprocess_env(SESSION => $1); $r->uri($2); return DECLINED; }