per PHP Cookie Daten senden
Twilo
- php
Hallo,
ich suche nach einer Möglichkeit, wie ich Cookie Daten an ein Server senden kann, wenn ich folgendes verwende
file_get_contents(URL);
im Manual bin ich bis jetzt noch nicht ganz fündig geworden, ich hab da schon die halbe Nacht verbracht ;-)
mfg
Twilo
Moin!
ich suche nach einer Möglichkeit, wie ich Cookie Daten an ein Server senden kann, wenn ich folgendes verwende
file_get_contents(URL);
Gar nicht. Die HTTP-Wrapper-Engine sendet keine Cookies, das müßtest du, sofern notwendig und gewünscht, selbst tun, indem du fsockopen() benutzt und den HTTP-Request selber zusammensetzt.
Hallo,
ich suche nach einer Möglichkeit, wie ich Cookie Daten an ein Server senden kann, wenn ich folgendes verwende
file_get_contents(URL);
Gar nicht. Die HTTP-Wrapper-Engine sendet keine Cookies, das müßtest du, sofern notwendig und gewünscht, selbst tun, indem du fsockopen() benutzt und den HTTP-Request selber zusammensetzt.
danke schon mal für deine Antwort
gibt es zu fsockopen irgendwo gutes Tutorial, was dieses Thema mit Cookies behandelt?
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
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?
bei file_get_contents muss ja URL fopen wrappers aktiviert sein
mfg
Twilo
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.