Wenn Perl Skripte oder wenn HTML Formulare verschickt werden, stellt sich die Frage, wie die Parameter vom Skript geholt werden können. Für PHP Skripte ist die Lösung sehr einfach, da die Parameter als Variablen automatisch zur Verfügung stehen. Für Perl Skripte – hingegen – muss man eine Funktion aufrufen, die die übertragene Parameter übernimmt.
Hier finden Sie die Standard Funktion, die die Parameter übernimmt:
sub read_form { if ($ENV{‘REQUEST_METHOD’} eq ‘POST’) { read(STDIN, $buffer, $ENV{‘CONTENT_LENGTH’}); } else { $buffer = $ENV{‘QUERY_STRING’}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg; $form{$name} = $value; } } |
Damit die Parameter übernommen werden können, muss man einfach die Funktion aufrufen, und dann die Parameter jeweils von den “form” Variablen kopieren.
!/usr/bin/perl # print “Content-type: text/html\n\n”; &read_form(); $email = $form{’email’}; print “Email: $email”; |
HTML Formular für das Versenden der Variable email. Der obige Skript muss “script.cgi” heissen, und in richtigem Order des Server gespeichert werden.
<form action=”script.cgi” method=”post”> Email: <input type=”text” name=”email”> </form> |
Leave a Reply