ein Kapitel zurück                                           ein Kapitel weiter

Das machen wir in diesem Kapitel (so siehts aus und funktionierts)


Nach der GET-Methode im Kapitel zuvor wollen wir uns nun die POST-Methode betrachten. Bei der POST Methode werden die Zeichenketten, anstatt wie bei der GET-Methode, nicht in einer Umgebungsvariable gelegt sondern in die Standarteingabe (STDIN) an das CGI-Programm.
Das heißt das wir dafür verantwortlich sind aus STDIN zu lesen. Die Länge der codierten Zeichenkette wird in CONTENT_LENGTH abgelegt. Geben sie z.B. in einem Formular ein...

Hallo

...so steht in CONTENT_LENGTH der Wert 5
Außerdem wird auch die Variable CONTENT_TYPE gesetzt damit das CGI-Script weiß was es mit den Daten machen soll. Benutzen wir wieder die selbe HTML-Datei wie schon zuvor.........

<html>
<head>
<title>Eine einfache Auswertung das Namens</title>
</head>
<body>
<h1><center><b><u> POST-Formular</u></b></center></h1><br><br>
<table width="50%" cellspacing=5 border=0
       cellpadding=5 align="center" bgcolor="yellow">
          <tr align="center " valign="center">
            <form action="http://localhost/cgi-bin/auswert.pl" method=post>
              <center><b>Bitte geben sie ihren Namen ein : </b>
              <input name="Textfeld" size="20"> </input>
              <input type=submit value="abschicken"></center>
            </form>
          </tr>
</table>
</body>
</html>  

....nur jetzt mit der Methode POST
Jetzt wollen wir auch gleich unser Skript dazu ansehen..............

#!/usr/bin/perl -w

read(STDIN, $input, $ENV{'CONTENT_LENGTH'});

my $output = <<HTML;
Content-type: text/html <html> <head> <title>AUSWERTUNG IHRER EINGABE</title></head> <body> <center><h1><b>Sie gaben ein :  $input</b></h1><br> CGI-Skripts zu schreiben ist doch gar nicht so schwer, oder?</center> <body> </html> HTML print $output;


Gehen sie wieder vor wie schon in den Kapiteln zuvor. Leider müssen wir hier wieder alles erst decodieren. Und wie auch schon bei der GET-Methode lässt sich auch hier das Modul CGI.pm  einsetzen. Hier das Skript............

#!/usr/bin/perl -w

use CGI qw(:standard);
use strict;

my $name = param('Textfeld');

my $output = <<HTML;
<html>
<head>
<title>AUSWERTUNG IHRER EINGABE</title>
</head>
<body>
<center><h1><b>Hallo $name</b></h1><br>
CGI-Skripts zu schreiben ist doch gar nicht so schwer, oder?</center>
<body>
</html>
HTML

print header, $output;


An der POST-Methode können sie auch sehen das die URL unverändert bleibt im Gegensatz zur GET-Methode.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf