CGI - Form-Submit herausfinden (mehrere submits)

Hi,

ich habe ein CGI-Script, das unter anderem ein mit mehreren hat.
Die form-action wird durch eine Funktion bestimmt.
Ich würde nun in dieser Funktion gerne die Ziel-URL davon abhängig machen, welcher der beiden -Buttons geklickt wurde.

sub url_encode {
my($URL)= @_ ;
$URL=~ s#^([\w+.-]+)://#$1/# ;
return $URL ;
}

In diesem Sub würde ich eine if-Klausel einbauen, die abhängig davon, welcher submit geklickt wurde, die URL nochmal verändert.

Wie kann ich das in CGI machen? Mein Wissen auf dem Gebiet ist sehr limitiert, ich habe so gut wie keine Ahnung von CGI…

Vielen Dank
–WhiteAvenger

Hallo WhiteAvenger,

gib den Submit-Inputs einfach eine name und unterschiedliche values. Dies wird beim Submiten fuer den jew. Submit-Button mit uebermittelt und kann nachher wie eine normale Variable ausgewertet werden.

Gruss
Stefan

Hallo Stefan,

gib den Submit-Inputs einfach eine name und unterschiedliche values.

Schon passiert.

Dies wird beim Submiten fuer den jew. Submit-Button
mit uebermittelt und kann nachher wie eine normale Variable
ausgewertet werden.

Das war mir auch schon klar, aber wie gesagt kenne ich mich mit CGI gar nicht aus, und weiß daher nicht, wie ich diese Variablen auswerten kann…

Hallo

Das war mir auch schon klar, aber wie gesagt kenne ich mich
mit CGI gar nicht aus, und weiß daher nicht, wie ich diese
Variablen auswerten kann…

ungefähr so:

#!perl
use strict;
use warnings;
use CGI qw':standard';

my $q = new CGI;

if(defined $q-\>param('submit')) { # erfüllt, falls nach submit aufgerufen
 my %urls = (
 aktion1 =\> 'http://perldoc.perl.org',
 aktion2 =\> 'http://en.wikipedia.org/wiki/Perl',
 aktion3 =\> 'http://www.perl.org/',
 );
 my $linkziel = $q-\>param('submit');
 if(exists( $urls{$linkziel} )) {
 print $q-\>redirect(-uri=\>$urls{$linkziel}, -status=\>301)
 }
}
else { # falls als "Webseite" im Brauser (direkt: /cgi-bin/whireavenger.pl)
 print
 $q-\>header,
 $q-\>start\_html,
 $q-\>h1('WhiteAvenger CGI Script'),
 $q-\>start\_form,
 $q-\>submit(-name=\>'submit', -value=\>'aktion1'),
 $q-\>submit(-name=\>'submit', -value=\>'aktion2'),
 $q-\>submit(-name=\>'submit', -value=\>'aktion3'),
 $q-\>end\_form,
 $q-\>end\_html
}

Grüße

CMБ