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 -0000 (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 >> >> >> >>