linux-l: CGI-Script im CGI-Script aufrufen

Manuel Tennert mtennert at meta-systems.de
Di Jan 30 16:11:25 CET 2001


Hallo liebe Linuxer...ich hab da mal eine kleine Frage und zwar will ich
in einem CGI-Script nach einer Abfrage ein weiteres Script laufen
lassen. Das eine Script sieht in etwa so aus:


#!/usr/bin/perl
# geben Sie hier Ihr Passwort an und             #
# achten Sie auf Gross / Kleinschreibung.        #

$passwort = "...";
##################################################
# geben Sie Hier die URL an, zu der Gelinkt wird #
# wenn das richtige Passwort eingegeben wird.    #
$richtig    = "blabla";
##################################################
# geben Sie Hier die URL an, zu der Gelinkt wird #
# wenn ein falsches Passwort eingegeben wird.    #
$falsch    = "blabla";
##################################################
###        AB HIER BITTE NICHTS VERAENDERN       #
##################################################
if ($ENV{'REQUEST_METHOD'} eq "POST") {
 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 ($name, $value) = split(/=/, $buffer);
}
elsif ($ENV{'REQUEST_METHOD'} eq "GET") {
 ($name, $value) = split(/=/, $ENV{'QUERY_STRING'});
}
else {
 print "Content-type:text/html\n\n";
 print "FEHLER !";
 exit;
}

$value =~ tr/+/ /;
$value =~ s/%([a-f0-9][a-f0-9])/pack("C", hex($1))/eg;
if (($value eq $passwort) || ($value eq $passw) || ($value eq $pass) ||
($value eq $passlt) || ($value eq $passgt) || ($value eq $passdiesdas)
|| ($value eq $passuli) || ($value eq $passfeza) || ($value eq
$passmargit)) {
 print "Location: $richtig\n\n";
}
else {
    system("perl maillog.pl");
    print "Location: $falsch\n\n";
}
exit;

In der letzten else-Anweisung versuche ich dann mit Hilfe von
system("perl maillog.pl"); ein weieteres Script aufzurufen. Leider aber
schreibt er mir dann, nachdem er auf eine Fehlerseite wechseln soll,
Location blablabla auf dem Bildschirm. Gibt es auch noch eine andere
Möglichkeit ein CGI an dieser Stelle aufzurufen, ausser mit System ???
Klar ich koennte den Quelltest des anderen Scripts zum einen in eine
subroutine packen und die dann aufrufen lassen, leider aber wird mir das
script dann ein wenig zu lang.

Hoffe jemand hat einen Vorschlag was ich abaendern muss !?



Mehr Informationen über die Mailingliste linux-l