Hi Sven!
"Glauben" ist beim Programmieren ganz schlecht. "Wissen" ist viel besser.
Da hast Du wohl recht ;-)
Und wenn ich einen ganz kurzen Blick in die Dokumentation von HTTP_Client werfe, dann sehe ich, dass dort Cookies von einer eigenen Klasse behandelt werden - was mir recht zweifelsfrei sagt, dass deine doppelte Abfolge von GETs die Cookies eben gerade NICHT berücksichtigt
Das ist allerdings eine recht "kühne" Schlussfolgerung. Wenn Cookie-Handling ein eigene Themenkomplex ist, macht es Sinn das in eine eigene Klasse zu packen, unabhängig davon ob diese Klasse dann automatisch von HTTP_Client benutzt wird (was aber hier der Fall ist).
- es wäre programmtechnisch auch relativ idiotisch, dem Server einfach jedes gesetzte Cookie wieder zurückzusenden, ohne dass man das verhindern könnte, weil es die Benutzbarkeit dieser Klasse für genau die Fälle, wo man keine Cookies senden will, erheblich einschränkt.
Aber genau das soll die Klasse machen. Die Klasse soll vor allem Cookies speichern und Redirects verfolgen. Automatisch. Wenn man das nicht will ist es einfach die falsche Klasse. Es gibt auch die Klasse PEAR::HTTP_Request, welche sehr viel mehr Kontrolle über einzelnde Requests einräumt (auf dieser Klasse baut HTTP_Client ebenfalls auf), das wäre dann eher die Klasse der Wahl. Bei HTTP_Client könnte man Cookies AFAIK lediglich über HTTP_Client::reset() loswerden (oder eben durch eine neue Instanz).
Sicherlich wäre es nicht schlecht über eine Funktion/einen Parameter festlegen zu können, ob (Session)-Cookies gespeichert werden sollen.
Wenn das mal jemand braucht kann er ja ein Patch hinschicken und es wird ggfs. eingebaut ;-)
Das Dumme ist nur, dass die Dokumentation dieser PEAR-Klasse äußerst dünn ist - es existiert die automatisch generierte Doku, die manuelle Doku ist aber praktisch nicht-existent. Das Zusammenspiel von HTTP_Client und HTTP_Client_CookieManager erschließt sich wahrscheinlich erst nach dem Studium des Klassenquelltextes (den es ja immerhin gibt).
Ja, in diesem Fall ist der Quelltext auch sehr einfach zu verstehen: http://cvs.php.net/co.php/pear/HTTP_Client/Client.php?r=1.5
Viele Grüße
Andreas
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/