Was ist hier falsch ?
Marcel Sicking
- perl
Hallo!
Kann mir vielleicht einer von Euch sagen, wo in dem script der fehler sein soll, ich hab keine Ahnung!
Bekomme immer die Fehlermeldung "premature end of script header"
Die Pfadangabe zum interpreter ist auf jeden fall io, da ich auch funktionierende habe :-))
#!/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Umgebungsvariablen</title></head><body>\n";
print "<h1>Umgebungsvariablen:</h1>\n";
print "<p>TEST</p>\n";
print "</body></html>\n";
da kann man doch eigendlich nichts falsch machen, oder ?
MfG
Marcel
Hallo Marcel,
Kann mir vielleicht einer von Euch sagen, wo in dem script der fehler sein soll, ich hab keine Ahnung!
Bekomme immer die Fehlermeldung "premature end of script header"
Die Pfadangabe zum interpreter ist auf jeden fall io, da ich auch funktionierende habe :-))
#!/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Umgebungsvariablen</title></head><body>\n";
print "<h1>Umgebungsvariablen:</h1>\n";
print "<p>TEST</p>\n";
print "</body></html>\n";
da kann man doch eigendlich nichts falsch machen, oder ?
Bei meinen ersten Versuchen mit Perl ist dieser Fehler auch häufig entstanden. Ich habe einfach noch eine Leerzeile am Ende des Skripts eingefügt, und dann ging es.
Erschießt mich, wenn ich mal wieder Mist schreibe ;-)
Viele Grüße
Patrick Canterino
Schönen Dank für Deine Antwort, das wars aber leider nicht :-((
Sonst vielleicht noch eine Idee?
marcel
Schönen Dank für Deine Antwort, das wars aber leider nicht :-((
Sonst vielleicht noch eine Idee?
marcel
Hallo Marcel
schreib mal in die erste Zeile
#!/usr/bin/perl -w
oder
#!/usr/local/bin/perl -w
Kuck mal nach wie der Pfad zu Perl richtig heißen muss bei Deinem Provider.
Grüße von SabineP
Halihallo
[...]
da kann man doch eigendlich nichts falsch machen, oder ?
Wirklich nicht! - Ich habe es sogar offline getestet und keine Fehler gemeldet bekommen. Sollte eigentlich schon funktionieren!
Was ich mir nicht vorstellen kann: Könnte es sein, dass CGI::Carp nicht installiert ist (obwohl das in der Std.Distr. dabei ist)??? - Dann würden ewaige Fehler ja nicht abgefangen, die Folge wäre u. U. deine Fehlermeldung.
Du verwendest schon eine einigermassen aktuelle Perl-Version, oder?
Welchen Webserver verwendest du? - Apache, nehme ich an?
Ich kann einfach keinen Fehler im Perl-Programm ausmachen, vielleicht ist der Webserver falsch konfiguriert (von dem stammt ja diese Fehlermeldung)??? - Was unterscheidet die Scripts, die funktionieren von denen die es nicht tun? -> Kannst ja mal ein kleineres posten. Hast du dort auch -w, use strict und CGI::Carp verwendet? - Von eventuellem Interesse könnte auch httpd.conf u. ä. sein.
Viele Grüsse
Philipp
Hallo Phillip!
Lokal bei mir funktioniert das script auch einwandfrei, nur bei meinem webhoster (kontent) läuft da nichts.
Ich hab grade mal ne mail an den support geschrieben und warte mal die Antwort ab!
Die müßten ihren Server schon ziemlich eigenartig konfiguriert haben, das nicht einmal so einfache scripts laufen denk ich!
Danke für die Antwort!
Marcel
Halihallo Marcel
Lokal bei mir funktioniert das script auch einwandfrei, nur bei meinem webhoster (kontent) läuft da nichts.
"kontent" nennen die sich??? - Typisch Denglish, die Hoster ;)
Ich hab grade mal ne mail an den support geschrieben und warte mal die Antwort ab!
Gute Idee, dann berichte uns in zwei Wochen mal, wie's ausgegangen ist (hatte ziemlich schlechte Erfahrung mit der durchschnittlichen Antwortzeit des Supportes) ;) würd mich nämlich interessieren, was die Antworten...
Die müßten ihren Server schon ziemlich eigenartig konfiguriert haben, das nicht einmal so einfache scripts laufen denk ich!
Bin ich einverstanden...
Viele Grüsse
Philipp
Hi Marcel
versuch's mal ohne den -w Switch und ohne nachfolgende Leerzeile. Also
#!/bin/perl
use strict;
HTH
Uwe
Hallo Marcel,
neben der falschen Pfadangabe zu Perl (von SabineP genannt) fällt mir noch dazu ein, daß Du das Skript beim Upload im Binary Mode kopiert haben könntest. Schieb es noch mal im Ascii Mode hoch und teste dann.
HTH Robert
Hallo!
Moin Moin !
Kann mir vielleicht einer von Euch sagen, wo in dem script der fehler sein soll, ich hab keine Ahnung!
Bekomme immer die Fehlermeldung "premature end of script header"
Die Pfadangabe zum interpreter ist auf jeden fall io, da ich auch funktionierende habe :-))
#!/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
^-- CGI spec sagt: CR/LF als Zeilenende im Header, dann eine Leerzeile zum Body.
Also auf gängigen Systemen
print "Content-type:text/html\r\n\r\n";
(Oder etwas exakter: \r durch \015 und \n durch \012 ersetzen)
Oder -- noch viel besser -- gleich so:
use CGI qw(:all);
print header();
da kann man doch eigendlich nichts falsch machen, oder ?
MfG
Marcel
Doch. ;-)
Zu den anderen Postings:
ASCII-Mode zum Upload ist meiner Meinung nach Pflicht für Perl-Scripte.
"-w" und/oder "use strict;" weglassen ist dumm.
"-T" sollte bei CGIs eigentlich auch immer dabei sein.
Und im Error-Log des Webservers nachzusehen hilft auch gelegentlich!
Alexander