Andreas Korthaus: Formularzugriff mit method="post" per PHP simulieren.

Beitrag lesen

Hallo!

Das wollte ich dann mit folgendem Script machen, damit ich danach den HTML Quellcode der Seite mit den Infos in der Varibale $res habe.

Hier PHP Code:

[php]<?php
$data = "fldUsername=Nur_zum_testen&fldPassword=C9EF321DF4&btnOK=OK";

printf("Go!\n");
$x = PostToHost(
              "http://login.americasarmy.com",
              "/login_ack.php",
              "http://login.americasarmy.com/login.php",
              $data
);

echo "Jetzt kommt $x<br><br>";
echo $x;

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;
}
[/php]

Es hagelt aber nur Fehlermeldungen, da ich die Funktion nur bekommen habe nicht selber geschrieben habe finde ich den Fehler leider nicht.

Gut, sieht mir aus wie das hier: http://www.dclp-faq.de/q/q-code-post.html

Du solltest aber schon verstehen was Du da machst. Das ganze soll nur ein Beispiel darstellen, und Du trägst jetzt den ganzen Ballast vermutlich unnötig mit Dir rum. Z.B. Referer - brauchst Du den?

Jedenfalls solltest Du Dir mal ganz genau ansehen in wiefern sich Deine Parameter von denen des Beispiels unterscheiden, denn da liegt das Problem.
Guck Dir im speziellen mal den "host" Parameter an.

Wie in dem Artikel mit dem Beispiel geraten, solltest Du Dir mal die Funktionsweise der Funktion fsockopen() näher ansehen, da gibt es noch viel mehr Beispiele, vor allem in den Kommentaren! http://de3.php.net/fsockopen

Gut, und die Fehlermeldungen wären bei der Lösungs Deines Problems durchaus hilfreich gewesen, denn da wird genau dieses stehen.

Fehlermeldungen sind nichts schlechtes sondern wollen Dir Hilfestellungen bei der Problemlösung geben. Daher Fehlermeldungen immer exakt(per c&p) mitposten.

Grüße
Andreas