Sven Rautenberg: per PHP Cookie Daten senden

Beitrag lesen

Moin!

ich hab mir zwar schon Verbindung zu einem externen Rechner aufbauen@tut.php-q.net durchgelesen, konnte dort aber leider nicht entnehmen, wie ich Cookie-Daten verschicken kann/muss

Alles, was dieses Tutorial mit fwrite() zum Server sendet, ist HTTP. Lies also "nur" in der Spezifikation von HTTP nach, was man da üblicherweise so senden tut, und im Speziellen eben, wie man Cookies sendet, und schon sollte das alles funktionieren.

Keine Angst vor HTTP: Solange du HTTP/1.0 verwendest, sind die zurückkommenden Daten relativ simpel behandelbar, und da HTTP grundsätzlich ein Klartextprotokoll ist, solltest du auch keine großen Probleme haben mit dem Hinzufügen von weiteren HTTP-Headern.

wenn man jetzt von einer URL nur ein Quelltext abrufen möchte, ist dann die fsockopen verbindung schneller/besser/sicherer als z.B. über file_get_contents?

Schneller könnte file_get_contents() sein, weil das Senden des Requests sowie das Auslesen der Ressource dort nicht mit einer PHP-Schleife geschehen, sondern mit C-Maschinencode - wesentlich relevanter dürfte hierbei aber die Übertragungsgeschwindigkeit vom entfernten Server sein - unterm Strich ist die Methode hinsichtlich Geschwindigkeit also eher egal.

"Besser" ist nicht gut zu entscheiden, sofern nicht bestimmt ist, nach welchem Kriterium man "gut" definiert.

Sicherer - die Frage der Sicherheit ist ebenso vielfältig. file_get_contents steht beispielsweise in alten PHP-Versionen nicht zur Verfügung, es ist vom fopen-wrapper abhängig, es kann keine speziellen HTTP-Header übermitteln (wie bei dir eben Cookies) - fsockopen hingegen steht grundsätzlich immer zur Verfügung. Andererseits muß man mit fsockopen natürlich einwandfrei HTTP sprechen können, auch mit möglicherweise feindlichen Servern, die einem irgendwas böses schicken könnten, oder irgendwas komplett verkehrtes (dieses Problem hängt natürlich auch etwas davon ab, ob man den Server kennt, auf den man zugreift, oder ob der Server z.B. von einem böswilligen Benutzer angegeben werden kann). Der fopen-wrapper hingegen erledigt diese Aufgabe (hoffentlich) vollkommen autark, und man muß sich um derartige Dinge keine Sorgen machen.

Unter dem Strich würde ich tendentiell eher file_get_contents benutzen wollen, weil es die ganze Handhabung von HTTP komplett außen vor läßt. fsockopen muß zum Einsatz kommen, wenn die Standardausführung von file_get_contents nicht mehr ausreicht - wie eben bei deinem Problem mit den Cookies.

  • Sven Rautenberg