Oleg R. wrote:
> Grettings to  everyone! I use apache for my web server and mod_perl for
> an output filter. Everything works fine, exept one thing. I want my
> perl-filter to be able to read some data from an htaccess file ,
> dependind on the web-site. I want for some sites to add an advertising
> banner , and information whether the site should have banner or not is
> written from mysql to htaccess file in the web site directory. Now the
> problem is that mod_perl filter does not see any variables that i set in
> htaccess. For exemple I set "PerlSetEnv Banner 1" or "PerlSetVar Banner
> 1" and then from the filter I check $ENV{'Banner'} and there is no such
> variable. I spent some time searching the web, and nothing. What do i do
> wrong?? Thanks a lot for your time!!!!
$ /usr/local/etc/apache22/vhosts >cat net.p6m7g8.test.conf
[snipped to relevant parts]
<Directory "/www/sites/net/p6m7g8/test/htdocs">
    Options Indexes FollowSymLinks MultiViews Includes
    AllowOverride FileInfo  ## I AM IMPORTANT!
    Order allow,deny
    Allow from all
</Directory>
<Location /filter_env>
    SetHandler modperl
    PerlResponseHandler TEST::Nothing
    PerlOutputFilterHandler TEST::OutputFilter
</Location>

$ /www/sites/net/p6m7g8/test/htdocs >cat .htaccess
PerlSetEnv A a
PerlSetVar C c
SetEnv B b

$ /www/sites/net/p6m7g8/test/htdocs/TEST >cat OutputFilter.pm
package TEST::OutputFilter;

use strict;
use warnings FATAL => 'all';

use Data::Dumper;

use base qw(Apache2::Filter);

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

sub handler : FilterRequestHandler {
    my $f = shift;

    my $env = Dumper(\%ENV);

    $f->print($env);

    Apache2::Const::OK;
}

1;

$ /www/sites/net/p6m7g8/test/htdocs/TEST >cat Nothing.pm
package TEST::Nothing;

## core
use strict;
use warnings FATAL => 'all';

## cpan

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

## custom


sub handler {
  my $r = shift;

  return Apache2::Const::OK;
}

1;

Working Sample:
http://test.p6m7g8.net/filter_env

Output:
$VAR1 = {
          'PATH' =>
'/home/pgollucci/bin:/home/pgollucci/vms:/usr/local/gnu-autotools/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin',
          'MOD_PERL_API_VERSION' => 2,
          'A' => 'a',
          'MOD_PERL' => 'mod_perl/2.0.2'
        };




-- 
------------------------------------------------------------------------
Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708
Consultant / http://p6m7g8.net/Resume/resume.shtml
Senior Software Engineer - TicketMaster - http://ticketmaster.com
1024D/A79997FA F357 0FDD 2301 6296 690F  6A47 D55A 7172 A799 97F

When I call your name, Girl, it starts to flame
Burning in my heart, Tearing it all apart..
No matter how I try My love I cannot hide....

Reply via email to