hallo,
ich fummle gerade mein skript von fopen auf curl um und habe probleme
mit dem header.
bis jetzt habe ich das problem wie folgt gelöst:
Ich habe somit den kompletten header in CURLOPT_CUSTOMREQUEST
gepackt.
Das funktioniert zwar alles prima aber eigentlich, sollte man der php-curl
beschreibung glauben, dürfte es nicht funzen weil dort ausdrücklich steht:
CURLOPT_CUSTOMREQUEST: Übergeben wird ein String, der als Kommando an Stelle von GET oder HEAD bei einer HTTP-Anfrage genutzt werden soll. Dies ist nützlich wenn z.B. ein DELETE oder andere weniger übliche Anfragen ausgeführt werden sollen. Gültige Werte sind z.B. GET, POST usw. Vollständige HTTP-Anfragen, wie 'GET /index.html HTTP/1.0\r\n\r\n' sind ungültig.
und genau da liegt auch schon mein probem. für die erste zeile im header
(GET /profil.php?id=".$id." HTTP/1.1) finde ich einfach keine lösung um sie
unter curl_setopt zu packen. für den rest (Referer, User-Agent, und Cookie)
gibt es unter curl_setopt einzelne dafür vorgesehene optionen.
ein wenig sorgen mache ich mir auch über: Connection: Keep-Alive und
Connection: close.
Es würde mich sehr freuen, wenn jemand, helfen könnte, den header
in die dafür vorgesehenen curl_setopt zu packen.
ich fummle gerade mein skript von fopen auf curl um und habe probleme
mit dem header.
bis jetzt habe ich das problem wie folgt gelöst:
PHP-Code:
$header = "GET /profil.php?id=".$id." HTTP/1.1 \r\n";
$header .= "Referer: http://www.testseite.de/ \r\n";
$header .= "Accept-Language: de \r\n";
$header .= "User-Agent: Mozilla/4.0 \r\n";
$header .= "Host: www.testseite.de \r\n";
$header .= "Connection: Keep-Alive \r\n";
$header .= "Cookie: loinname; password \r\n";
$header .= "Connection: close \r\n\r\n";
//Die Session initialisieren
$ch = curl_init("http://www.testseite/profil.php?id=".$id."");
//Session Optionen setzen
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
//Ausführen der Aktionen
curl_exec($ch);
//Session beenden
curl_close($ch);
gepackt.
Das funktioniert zwar alles prima aber eigentlich, sollte man der php-curl
beschreibung glauben, dürfte es nicht funzen weil dort ausdrücklich steht:
CURLOPT_CUSTOMREQUEST: Übergeben wird ein String, der als Kommando an Stelle von GET oder HEAD bei einer HTTP-Anfrage genutzt werden soll. Dies ist nützlich wenn z.B. ein DELETE oder andere weniger übliche Anfragen ausgeführt werden sollen. Gültige Werte sind z.B. GET, POST usw. Vollständige HTTP-Anfragen, wie 'GET /index.html HTTP/1.0\r\n\r\n' sind ungültig.
und genau da liegt auch schon mein probem. für die erste zeile im header
(GET /profil.php?id=".$id." HTTP/1.1) finde ich einfach keine lösung um sie
unter curl_setopt zu packen. für den rest (Referer, User-Agent, und Cookie)
gibt es unter curl_setopt einzelne dafür vorgesehene optionen.
ein wenig sorgen mache ich mir auch über: Connection: Keep-Alive und
Connection: close.
Es würde mich sehr freuen, wenn jemand, helfen könnte, den header
in die dafür vorgesehenen curl_setopt zu packen.
Kommentar