25.2. Wie kann ich einen HTTP POST-Request absenden?Antwort von Kristian KöhntoppDas Script muss einen Socket mit der Funktion fsockopen() zum Zielserver öffnen und auf diesem Socket dann einen HTTP POST-Request simulieren. Anbei ein vollständiges Beispiel, das mit CGI-PHP auf der Unix-Kommandozeile verwendet werden kann. Das Script fälscht Einträge in einer Abstimmung auf dem Host www.linux.com, wo es für PHP als beste Scriptsprache stimmt. #! ./php -q <?php function PostToHost($host, $path, $referer, $data_to_send) { $fp = fsockopen($host, 80); printf("Open!\n"); fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Referer: $referer\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data_to_send); printf("Sent!\n"); while(!feof($fp)) { $res .= fgets($fp, 128); } printf("Done!\n"); fclose($fp); return $res; } $data = "pid=14&poll_vote_number=2"; printf("Go!\n"); $x = PostToHost( "www.linux.com", "/polls/index.phtml", "http://www.linux.com/polls/index.phtml?pid=14", $data ); |
||
25.2. Wie kann ich einen HTTP POST-Request absenden? http://www.php-faq.de/q/q-code-post.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |