Query-String
Tom
- perl
0 Cheatah
Hi,
in einem Perl-Script würde ich gerne mittels Query-String verschiedene Funktionen aufrufen.
Wenn ich z.B. einen Link in der Form mache,
print "<a href="$script?action=new">Neuer Beitrag</a>\n"
dann kann ich es mit
if ($IN{'action'} eq 'new'){
print "Neuer Beitrag...\n";
}
nicht aufrufen.
Zum Formularauslesen verwende ich
read(STDIN, $input,$ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
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;
$IN{$name} = $value;
}
Trotzdem funktioniert es nicht. Wenn jemand Rat weiß, wäre ich ihm für eine Antwort sehr verbunden.
viele Grüße
Tom
Hi,
in einem Perl-Script würde ich gerne mittels Query-String verschiedene Funktionen aufrufen.
Wenn ich z.B. einen Link in der Form mache,
print "<a href="$script?action=new">Neuer Beitrag</a>\n"
dann kann ich es mit
if ($IN{'action'} eq 'new'){
print "Neuer Beitrag...\n";
}nicht aufrufen.
Deine Routine liest nur mittels POST übergebene Daten, ist hier also nicht anwendbar. Mach es am besten gleich richtig:
use CGI;
my $cgi = new CGI;
if ($cgi->param("action") eq "new") { ... }
Damit kannst Du nichts mehr falsch machen.
Cheatah