Klaus Mock: STDIN wird nicht gelesen

Beitrag lesen

Hallo,

[...] auch cgi-lib.pl greift auf STDIN zu, aber STDIN kann ich irgendwie nicht auslesen.

Das Problem mliegt wohl eher daran, wie das script aufgerufen wird.
Es stehen ja grundsätzlich mal zwei Wege offen.
1.) HTTP-Methode GET:
das passiert wenn Du direkt den URL in die Adresszeile Deines Browsers eingibst, oder über einen Link aufgerufen wirst, oder aber per HTML-Formular, das mit 'method="GET"' oder auch ohne 'method'-Attribut definiert wurde.

Dann stehen die Parameter in $ENV{QUERY_STRING} (in der Form 'name=wert&name2=wert2' und müssen entsprechend zerlegt werden.

2.) HTTP-Methode POST:
das passiert wenn das Formular mit dem Attribut 'method="POST"' definiert wurde.

Erst dann bekommst Du die Parameter per <STDIN> in verbindung mit $ENV{'CONTENT_LENGTH'} raus.

Aber,....

Diese Entscheidungen und noch einiges anderes wird von CGI.pm bzw. cgi-lib.pl bereits für Dich erledigt. Die Daten werden aufbereitet und stehen ganz bequem zum Weiterverwenden bereit.

Also warum das Rad nochmals erfinden?

Grüße
  Klaus

PS.: Die Beispiele für das Erzeugen von HTTP-Requests sind natürlich nicht vollständig. Es gibt noch eine Unzahl anderer Möglichkeiten, solche Requests zu erzeugen (beispielsweise mit telnet), aber das steht auf einem anderen Blatt ;-)