Seite 1 von 1

Mit PHP gesetztes Cookie auslesen

Verfasst: Samstag 23. August 2008, 01:30
von scripter
Hi,

ich möchte mich mit Python´s urllib2 auf einer Seite einloggen. Soweit habe ich das auch schon geschafft, allerdings müsste ich mit Python das von der login.php gesetzte Cookie wieder auslesen können, damit ich dieses auf den weiteren Seiten mit einbetten kann.

Vielen Dank für die Antworten!

Verfasst: Samstag 23. August 2008, 07:16
von audax

Verfasst: Samstag 23. August 2008, 11:22
von scripter
Diese Lib habe ich duchrs googlen auch schon gefunden, allerdings nur in Verbindung mit Code, der ausliest. Es wäre nett, wenn mir jemand einen kurzen Beispielcode geben würde.

Verfasst: Samstag 23. August 2008, 11:31
von Leonidas
In den HTTP-Headers wird Set-Cookie übertragen, wo das Cookie abgelegt wird.

Besserer Ansatz: gleich Machanize benutzen, dann spart man sich das lästige Cookie-Handling.

Verfasst: Sonntag 24. August 2008, 00:29
von scripter
Was ist Machanize? Die PHP kann ich nicht verändern, da diese fest auf dem Webspace eines Freundes liegt.

Durch urllib2.urlopen kann man doch den HTTP-Header nur senden, nicht empfangen. Und eine andere Funktion dafür habe ich nicht entdeckt.

Verfasst: Sonntag 24. August 2008, 05:32
von BlackJack
mechanize tut so als wäre es ein Browser.

Verfasst: Sonntag 24. August 2008, 05:53
von Leonidas
scripter hat geschrieben:Durch urllib2.urlopen kann man doch den HTTP-Header nur senden, nicht empfangen.
Natürlich kann man mit der urllib2 den Header auch lesen, der wird ja bei jedem HTTP-Request mitgeschickt.

Verfasst: Samstag 24. Januar 2009, 09:40
von droptix
Habe ein ähnliches Problem. Ich logge mich erfolgreich mit meinem eigenen Mini-Script (mit HTTPCookieProcessor) bei einer Website ein. Ich erhalte nur einen Cookie zurück, und zwar PHPSESSID, sonst nix.

Wenn ich das Ganze im Firefox durchführe und mir alle HTTP Requests mit der Extension HttpFox mit logge, dann ist das schon mal korrekt. Nach dem Login lädt der echte Browser weitere Dinge wie CSS- und JavaScript-Dateien aus dem HTML-Quelltext. Das passiert nur ca. 250 ms später als der Login-Request -> dort sendet Firefox allerdings schon 4 weitere Cookies mit und ich weiß nicht woher die kommen. Im HTML-Quelltext selbst werden diese 4 Cookies jedenfalls nicht gesetzt (geht ja mittels JavaScript und `document.cookie`).

Ich dachte zuerst, dass PHP das verdeckt macht, aber PHP wird wohl nichts weiter machen als der HTTP-Antwort ein paar Cookie-Set-Header hinzuzufügen, richtig? Und da ich in der Antwort nur PHPSESSID zurück bekommen habe, war das die ganze Arbeit von PHP.

Woher kommen nun die 4 unbekannten Cookies, dreen Werte wichtig für den weiteren Verlauf nach dem Login sind? Dort drin stecken nämlich weitere IDs und Hashes. Jemand ne Idee?

Verfasst: Samstag 24. Januar 2009, 10:15
von droptix
Oh, vergesst es -- es IST JavaScript. Es wird aber erst nachgeladen, erzeugt weiteren JavaScript-Code direkt im HTML über DOM und setzt dort diese Cookies.