Apache und perl-script / cgi ??
Hallo, ich habe folgendes perl-script im cgi-bin-Ordner meines Apache1.???? (Orig. SuSE 9.0) --------schnipp--------- #!/usr/bin/perl/ #Ausgabe der Formularinhalte print "Content-Type: text/html"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE> Ausgabe der Formularinhalte </TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "<H1>Feedback</H1>\n"; print "<P>Sie haben soeben folgende Eingaben in das Formular eingetragen:</P> \n"; # Übertragungsmethode POST if ($ENV{'REQUEST_METHOD'} eq 'POST') { $eingabe = $ENV{'QUERY_STRING'}; } # Übertragungsmethode GET else { binmode STDIN; read (STDIN, $eingabe, $ENV{'CONTENT_LENGTH'}); } # paarweises Zerlegen des Inhalts @Formularfelder = split(/&/,$eingabe); # jedes Wertepaar in der Liste wird separat bearbeitet und ausgegeben foreach $Paar (@Formularfelder) { # Formularname und eingetragener Wert aufsplitten # Als Trennzeichen wird das Gleichheitszeichen benutzt. ($formularname, $wert) = split(/=/,$Paar); # +-Zeichen in Leerzeilen rückkonvertieren $wert =~ tr/+/ /; # Sonderzeichen rückkonvertieren $wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; # Formularnamen und Werte ausgeben print "<P>$formularname = $wert</P>\n"; } print "<H1>Ausgabe von Umgebungsvariablen</H1>\n"; print "<P>Server-Software: $ENV{'SERVER_TYPE'}</P>\n"; print "<P>Server-Name: $ENV{'SERVER_NAME'}</P>\n"; print "</BODY>\n"; print "</HTML>\n"; ---------schnapp------------ beim Aufruf von "perl -wc script.pl bekomme ich die Meldung: syntax OK Nun habe ich das in den cgi-Ordner kopiert, und wenn ich es im Browser aufrufe sagt dieser mir : ----------schnipp------------ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@linux.local and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. --------------schnapp------------ Wo bitte muß ich noch drehen, das es läuft? ; Zumal andere cgi-scripte durchlaufen : z.B. das um meine ISDN.log auszulesen........ Danke für jeden Hinweis, Axel
Hallo, Am Sun, 21 Nov 2004, Axel Lindlau schrieb:
ich habe folgendes perl-script im cgi-bin-Ordner meines Apache1.???? (Orig. SuSE 9.0) --------schnipp--------- #!/usr/bin/perl/ ^ *OINK*
#!/usr/bin/perl -w use strict; # (siehe sig)
#Ausgabe der Formularinhalte print "Content-Type: text/html"; print "<HTML>\n"; ^ *OINK* Hier fehlen gleich 2 Zeilenumbrueche.
print "Content-Type: text/html\n\n", "<HTML>\n"; Den Rest hab ich mir gar nicht erst genauer angeschaut. Du willst DRINGENDNST 'perldoc CGI' und andere grundlegende Lektuere zu CGI generell und CGI mit perl speziell lesen!!! -dnh PS: du muss nicht jede Zeile einzeln per 'print' ausgeben. Dafuer gibt's das Komma. -- Use strict! *WHAM* Strict, I tell you! And -w! *WHAM* *WHAM* *WHAM* -- Skud
Hallo,
Am Sun, 21 Nov 2004, Axel Lindlau schrieb:
ich habe folgendes perl-script im cgi-bin-Ordner meines Apache1.???? (Orig. SuSE 9.0) --------schnipp--------- #!/usr/bin/perl/
^ *OINK*
#!/usr/bin/perl -w use strict;
# (siehe sig)
#Ausgabe der Formularinhalte print "Content-Type: text/html"; print "<HTML>\n";
^ *OINK* Hier fehlen gleich 2 Zeilenumbrueche.
print "Content-Type: text/html\n\n", "<HTML>\n";
Den Rest hab ich mir gar nicht erst genauer angeschaut.
Du willst DRINGENDNST 'perldoc CGI' und andere grundlegende Lektuere zu CGI generell und CGI mit perl speziell lesen!!! Leider funktionieret ein einfaches Perl-Script "Hello World" ....auf meinem Server, bei Aufruf dieses Scriptes erhalte ich aber die Error_log-Meldung des Servers: ------------schnipp------------- [Mon Nov 22 09:23:28 2004] [error] (20)Not a directory: exec of /srv/www/ cgi-bin/teiascript3-cgi.pl failed [Mon Nov 22 09:23:28 2004] [error] [client 127.0.0.1] Premature end of script
Am Montag, 22. November 2004 03:54 schrieb David Haller: headers: /srv/www/cgi-bin/teiascript3-cgi.pl ------------schnapp---------- Irgendwie klemmt es jetzt wirklich bei mir :-(
Hallo, Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 03:54 schrieb David Haller: [..]
Du willst DRINGENDNST 'perldoc CGI' und andere grundlegende Lektuere zu CGI generell und CGI mit perl speziell lesen!!! Leider funktionieret ein einfaches Perl-Script "Hello World" ....auf meinem Server, bei Aufruf dieses Scriptes erhalte ich aber die Error_log-Meldung des Servers:
Hast du das script den korrigiert?
------------schnipp------------- [Mon Nov 22 09:23:28 2004] [error] (20)Not a directory: exec of /srv/www/ cgi-bin/teiascript3-cgi.pl failed [Mon Nov 22 09:23:28 2004] [error] [client 127.0.0.1] Premature end of script headers: /srv/www/cgi-bin/teiascript3-cgi.pl ------------schnapp---------- Irgendwie klemmt es jetzt wirklich bei mir :-(
Wie sieht die Konfiguration von cgi-bin aus? -dnh, Zufallssig! :) --
....Ommmmmm ....Ommmmmm .....Ommmmmm Pendel ----Pendel-----Pendel------ Mensch Axel: Sonst machst Du das doch mit der Glaskugel. Ist die schon wieder in der Spülmaschine? [Axel Lindlau und Volker Kroll in suse-linux]
Am Montag, 22. November 2004 16:59 schrieb David Haller:
Hallo,
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 03:54 schrieb David Haller:
[..]
Du willst DRINGENDNST 'perldoc CGI' und andere grundlegende Lektuere zu CGI generell und CGI mit perl speziell lesen!!!
Leider funktionieret ein einfaches Perl-Script "Hello World" ....auf meinem Server, bei Aufruf dieses Scriptes erhalte ich aber die Error_log-Meldung des Servers:
Hast du das script den korrigiert?
------------schnipp------------- [Mon Nov 22 09:23:28 2004] [error] (20)Not a directory: exec of /srv/www/ cgi-bin/teiascript3-cgi.pl failed [Mon Nov 22 09:23:28 2004] [error] [client 127.0.0.1] Premature end of script headers: /srv/www/cgi-bin/teiascript3-cgi.pl ------------schnapp---------- Irgendwie klemmt es jetzt wirklich bei mir :-(
Wie sieht die Konfiguration von cgi-bin aus? Hm -Jetzt steh ich noch mehr auf dem Schlauch........Ich gehe mal davon aus, das die Konfiguration des Apache i.O. ist, weil es laufen ja auch noch andere cgi-scripte; -mit einem solchen werte ich die ISDN.log aus.......
-dnh, Zufallssig! :) Naja - das soll ich jetzt glauben *ggg* -Irgendwie passt es ja :-(
--
....Ommmmmm ....Ommmmmm .....Ommmmmm Pendel ----Pendel-----Pendel------
Mensch Axel: Sonst machst Du das doch mit der Glaskugel. Ist die schon wieder in der Spülmaschine? [Axel Lindlau und Volker Kroll in suse-linux]
Hallo, Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 16:59 schrieb David Haller:
Hallo,
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 03:54 schrieb David Haller: [..] Hast du das script den korrigiert?
UND? Hast du?
Wie sieht die Konfiguration von cgi-bin aus?
Hm -Jetzt steh ich noch mehr auf dem Schlauch........Ich gehe mal davon aus, das die Konfiguration des Apache i.O. ist, weil es laufen ja auch noch andere cgi-scripte; -mit einem solchen werte ich die ISDN.log aus.......
Auch ein perlscript mit .pl als Endung und den gleichen Rechten? Funktioniert folgendes script: ==== hallo.pl ==== #!/usr/bin/perl -w use strict; print "Content-Type: text/html\n\n"; print "<html><head></head><body>Hallo Welt!</body></html>\n"; 1; ==== Wenn ja, dann ist der Fehler in deinem script. -dnh -- Documentation: Cryptic, lacking, erroneous. Pick any three.
Am Montag, 22. November 2004 20:14 schrieb David Haller:
Hallo,
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 16:59 schrieb David Haller:
Hallo,
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 03:54 schrieb David Haller:
[..] Hast du das script den korrigiert?
UND? Hast du? Dachte ich eigentlich :-(
Wie sieht die Konfiguration von cgi-bin aus?
Hm -Jetzt steh ich noch mehr auf dem Schlauch........Ich gehe mal davon aus, das die Konfiguration des Apache i.O. ist, weil es laufen ja auch noch andere cgi-scripte; -mit einem solchen werte ich die ISDN.log aus.......
Auch ein perlscript mit .pl als Endung und den gleichen Rechten?
Funktioniert folgendes script:
==== hallo.pl ==== #!/usr/bin/perl -w use strict;
print "Content-Type: text/html\n\n"; print "<html><head></head><body>Hallo Welt!</body></html>\n"; 1; ====
Wenn ja, dann ist der Fehler in deinem script. Das läuft :-) Also suche ich in dem Script weiter, jetzt weiß ich aber, das der Apache nicht der schuldige ist. Insoweit vielen Dank !! Axel
-dnh
-- Documentation: Cryptic, lacking, erroneous. Pick any three.
Hallo, Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 20:14 schrieb David Haller:
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 16:59 schrieb David Haller:
Am Mon, 22 Nov 2004, Axel Lindlau schrieb:
Am Montag, 22. November 2004 03:54 schrieb David Haller:
[..] Hast du das script den korrigiert?
UND? Hast du? Dachte ich eigentlich :-( [..] Wenn ja, dann ist der Fehler in deinem script. Das läuft :-)
Ok, ich hab mir deinen Versuch jetzt genauer angeschaut.
Da waren noch andere Fehler. Viele. Grundlegende. Du verwendest keine
warnings, keinen Taint-mode, kein strict. Allein dafuer gehoerst du,
aehm, gehoert dir eigentlich die ausgedruckte Doku um die Ohren
gehauen. *fg*
Wie ich schon schrieb: DU WILLST DRINGEND 'perldoc CGI' LESEN!
UND 'perldoc perlsec'!!!
So, damit du von meiner Meckerei aber auch was hast:
====
#!/usr/bin/perl -wTt
use strict;
use CGI qw(:standard);
use CGI::Carp;
my $query = new CGI();
print $query->header();
print <<'EOF';
<html>
<head>
<title>Ausgabe der Formularinhalte </title>
</head>
<body>
<h1>Feedback</h1>
<p>Sie haben soeben folgende Eingaben in das Formular eingetragen:</p>
EOF
foreach my $name ( $query->param() ) {
print " <p>$name = ", $query->param($name), "</p>\n";
}
print <
participants (2)
-
Axel Lindlau
-
David Haller