Ich öffne mit
$fp = fsockopen("xyz.com",80,&$errno, &$errstr, 30);
eine Verbindung und fordere dann über diese eine URL an
Diese URL setzt dabei ein Cookie, welches ich bei Anforderung einer weiteren URL dieser Domaine wieder zurücksenden will.
Was nicht geht ist das zurücksenden des Cookies, ich habs probiert mit
Header("Cookie : $receveidCookie");
fputs ($fp, "GET /next.html HTTP/1.0\r\n\r\n");
klappt aber nicht.
Vermutung 1: Wenn, dann 'header("Cookie: $receivedCookie");' (das Leerzeichen vor dem Doppelpunkt hat da nix zu suchen). RFC 2109.
Vermutung 2: Du willst den Keks an /next.html senden. Mit header() schickst du das Teil aber an die Seite, die das PHP-Skript ausgibt.
Es müsste also 'fputs ($fp, "GET /next.html HTTP/1.0\r\nCookie: $receivedCookie\r\n\r\n");' heißen.
Vermutung 3: Du hast vergessen, die Verbindung wiederherzustellen. HTTP/1.0-Verbindungen werden nach der ersten Anfrage geschlossen, sofern nicht explizit der Weiterbestand angekündigt wurde. RFC 2616, RFC 2068.
Vorschlag zu deinem Cookie-Einlesen-Problem: Warum schaust du nicht einfach bei allen bis zur ersten Leerzeile eingelesenen Zeilen, ob sie mit "Set-Cookie:" anfangen und kopierst dann den Inhalt nach den Leerzeichen nach $receivedCookie? Also in etwa:
while (!feof($fp) && ($zeile!="\r\n") { // nur Kopfzeilen
$zeile=fgets($fp);
if (substr($zeile,0,12)=="Set-Cookie: ")
$receivedCookie=trim(substr($zeile,12));
}
while (!feof($fp) {
//Inhalt verwursten..
Deine Version hat übrigens das Problem, daß sie auch auf "Set-Cookie:" im Seiteninhalt reagiert, anstatt nur die Kopfzeilen zu bearbeiten.
Hoffentlich hilft's:)
soenk.e