Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Indy10 Cookie weiterverwenden

  Alt 20. Jul 2008, 20:22
Hallo.

Mit Indy+Cookies habe ich noch nicht das vergnügen gehabt.

Zu erst einmal: Ich hoffe, du redest von "anderen" Seiten der selben Domain. Dass das Cookie von Domain 1 nicht an Domain 2 weitergegeben wird, ist selbstverständlich.

Ich gehe mal davon aus, dass du den Cookie als String vorliegen hast, oder?

Wenn du den Cookie hast, müsstest du ihn nur in das Request-Paket der nächsten HTTP-Anfrage miteinfließen lassen (willst du eine GET oder eine POST Anfrage stellen?)

Du kannst mit http://web-sniffer.net/ dir eine Seite mit Request+Response ansehen.

Rufe ich eine Seite auf, die ein Cookie erfordert, steht im Response sowas wie:

Code:
Set-Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/
Du bekommst den Keks also, wenn du die Response-Variable 'Set-Cookie' einholst.

Akzeptiert der "Browser" (dein Programm) nun keine Cookies, ignoriert er diesen Teil und verfährt weiter ohne Cookies. Indy wird dem Programmierer sicherlich freistellen, ob er Cookies annimmt/weitergibt oder nicht, deswegen wird die Funktion sicherlich nicht automatisch durchgeführt.

Willst du das Cookie verwenden/annehmen. Musst du bei allen weiteren Seitenaufrufen folgendes in den Request eingehen lassen:

Code:
Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(Achtung: Wenn mehrere Cookies gesetzt, werden sie mit einem Strichpunkt und einem Leerzeichen (; ) voneinander getrennt.)

Dann hat das Script auf der Serverseite das Cookie erhalten (in diesem Falle die PHP-Sessionkennung).

Poste uns doch ein wenig Code, auch wenn du das Problem gelöst hast. Ist für andere Leute, die das selbe Problem haben, sicherlich wertvoll.

Gruß
blackdrake

//Edit: Schau dir aber nochmal die Parameterliste von Indy an. Vielleicht gibt es einen Boolean-Schalter, der das automatische Verwalten von Cookies für dich übernimmt. Dann sparst du dir vielleicht Arbeit mit den Request-Headeranalysen und den Response-Erweiterungen.
Daniel Marschall
  Mit Zitat antworten Zitat