Frank Schönmann: GET + POST + PERL.....Environment-Variablenübergabe an den Script

Beitrag lesen

hi!

$eingabe="####"

Was soll das? Rausschmeißen.

if ($ENV{REQUEST_METHOD} eq "GET") {$eingabe=$ENV{QUERY_STRING};}
else {read(STDIN,$eingabe,$ENV{CONTENT_LENGTH});}

Sehr unschön, das so zu machen. Besser ist, du verwendest das Modul
CGI, das normalerweise auch bei Schlund verfügbar sein müsste. Bsp.:
  use CGI;
  $wert1 = CGI::param('wert1');
  $wert2 = CGI::param('wert2');

Das funktioniert sowohl mit POST als auch mit GET. Verwendungsweise
sollte klar sein.

Weiterhin solltest du überprüfen, ob die wichtigen Variablen gefüllt
sind oder nicht, und evtl. eine Fehlerseite auswerfen, die erneut
ein Forumular zum Eingeben der Daten enthält.

(ich weiss z.b. nicht, ob $ENV{mit tüttelchen} oder ohne
tüttelchen, nirgendswo beschrieben, im Internet kursieren beide
Versionen als Demo-Skripts)

Beides ist möglich. Ohne Anführungszeichen, mit ' oder mit ". Die
Anführungszeichen wegzulassen, ist erlaubt, wenn es sich um einen
gültigen Perl-Bezeichner handelt und sich nicht mit einer der Perl-
Funktionen überschneidet. '-Zeichen verwendet man normalerweise, um
sicherzugehen. "-Zeichen braucht man an der Stelle nur, um Variablen
interpolieren zu können.

while ($element=shift(daten)) { ... }

Nicht gerade, der gebräuchlichste Weg, eine Schleife durchzugehen,
außerdem fehlt vor "daten" ein @-Zeichen. Richtiger wäre:
  foreach $element (@daten)
  {
    # verarbeite $element
  }

Oder kürzer:
  for (@daten)
  {
    # aktuelles Element steht nun in $_
  }

????? WIE KANN MAN EIN GET PRODUZIERN, OBWOHL DIE FORM EIN POST
VERLANGT?????

Direkt aufrufen zum Beispiel. Oder nach dem POST die Seite bookmarken
und später zurückkommen. etc.

(Ich will nicht verschweigen, daß ich, meiner Meinung nach, das
Archiv erstmal gewissenhaft abgesucht habe, aber nichts zu diesem
Thema gefunden habe!)

Suche zb. nach "use CGI".

bye, Frank!