Apache si vymysli cookie?
Jan Kasprzak
kas na fi.muni.cz
Pondělí Červenec 2 19:07:29 CEST 2007
Jan Kasprzak wrote:
: delam nejakou vec ktera by mela pouzivat cookies pro udrzovani staovych
: informaci.
[...]
: Po nekolika kliknutich nebo reloadech se ale stane, ze $jar->cookies()
: zacne vracet, ze je nastavena cookie (i kdyz tcpdumpem jsem overil,
: ze browser zadnou neposila ani nejde o nejake prezivsi TCP spojeni:
: proste nove spojeni bez HTTP hlavicky Cookie: ze strany klienta,
: a presto se v $jar->cookies() najde nejaky zaznam.
Testoval jsem jeste vic, a vypada to, ze kdyz tentyz potomek
Apache drive nekomu poslal cookie, tak uz $jar->cookies() tu cookie
obsahuje naporad i v dalsich requestech.
Cist cookie jsem zkousel ruznymi metodami - pres
Apache2::Cookie::Jar->new(), dale pres fetch CGI::Cookie nebo pres
parse CGI::Cookie($ENV{HTTP_COOKIE}). Chova se to stejne.
Mam PerlOptions +GlobalRequest (musim mit, nezkousel jsem jestli
by vypnuti pomohlo), a odchozi cookie vyrabim pres
my $cookie_out = Apache2::Cookie->new($r,
-name => $COOKIE_NAME,
-value => $session,
-expires => '+' . $COOKIE_EXPIRACE . 'd',
-path => '/',
);
$cookie_out->bake($r);
Vyrabet odchozi cookie jsem krome vyse uvedeneho zpusobu zkousel
pres $r->headers_out->set('Set-Cookie' => CGI::Cookie->new(...)),
a taky se to chova stejne.
Zkousel jsem Apache 2.2 i 2.0, zkousel jsem handler z PerlFixupHandler
presunout do PerlResponseHandler, a nic z toho nepomohlo. Proste jak nejaky
klient zpusobi ze je mu odeslana cookie, tak ten stejny potomek Apache uz
tu cookie vidi jako prichozi i v dalsich requestech ktere zpracovava.
Muzu samozrejme v okamziku kdy posilam ven tu novou cookie
udelat $r->child_terminate, ale prijde mi to jako zbabelost :-)
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Journal: http://www.fi.muni.cz/~kas/blog/ |
> what I'm trying to do here is to wake people up who seem to be living in <
> some dream-world where Sun wants to help people. --Linus Torvalds <
Další informace o konferenci Perl