[EMAIL PROTECTED] <[EMAIL PROTECTED]> said something to this effect on 12/17/2001: > I'm recording a url at the beginning of an app to restore the > entrance url: > > sub set_referer { > my $self = shift; > if ($self->{R}) { > require Apache::Cookie; > > my $cookie = Apache::Cookie->new($self->{R}, > -name => "REFERER", > -value => $self->{R}->header_in('Referer'), > -expires => '2d', > -domain => ".$NFN::sites{$ENV{SITE}}{domain}", > -path => '/' > ); > $cookie->bake; > } > > } > > > Which stores the cookie portion like so: > > >REFERER=http://www.newsfactor.com/xxxxx.pl%3faction=reply_form_html&board=nfntalkback&id=3288 > > However when I pull this back in with Apache::Cookie->fetch, > the data then reads: > > http://www.newsfactor.com/xxxxx.pl?action=reply_form_html > > Apache::Cookie seems to be stripping out the portion after the first > ampersand. > > Anybody know what do do here?
Use escape_uri and unescape_uri, or some other pair of reversable functions. For example, store it as: use Apache::Util qw(escape_uri unescape_uri); sub set_referer { my $self = shift; if ($self->{R}) { require Apache::Cookie; my $cookie = Apache::Cookie->new($self->{R}, -name => "REFERER", -value => escape_uri($self->{R}->header_in('Referer')), -expires => '2d', -domain => ".$NFN::sites{$ENV{SITE}}{domain}", -path => '/' ); $cookie->bake; } } And then fetch it as: my $value = unescape_uri($cookies{'REFERER'}); (darren) -- Men are from earth. Women are from earth. Deal with it.