Premature end of script headers

Von: , Frage gestellt am Mo, 23. Aug 2004

Halihalo,

ich habe mal wieder etwas Probleme mit einem Skript und hoffe,ih rkönnt mir da weiterhelfen.
Also,ich habe ein kleines Skript verfasst, mit dem ich e-mails versenden kann,aber ich bekomme ständig in der error_log zwei Fehlermeldungen:
1.Premature end of script headers sendmail1.pl, referer: http://localhost/sendmail1.html
2.Can't find string terminator "HERE_TEXT" anywhere before EOF at sendmail1.pl line 26., referer: http://localhost/sendmail1.html

Diese Fehlermeldungen habe ich ständig und hoffe, ihr könnt mir da weiterhelfen.
Hier das Skript: Line 26 ist übrigens: print <<HERE_TEXT;

#!c:/Perl/bin/perl

use strict;
use Mail::Sendmail;
use CGI qw(:standard);

my $to = param("to");
my $body = param("body");
my $subject = param("subject");
my $cc = param("cc");

###Festlegen des SMTP-Servers#####

unshift @{$Mail::Sendmail::mailcfg{'smtp'}},
'smtp.web.de';

my %mail = ( To => $to,
From => "[E-Mail-Adresse entfernt]",
Cc => $cc,
Subject => $subject,
Message => $body
);

sendmail(%mail) or die "Die Nachricht konnte nicht gesendet werden.$!";

print<<HERE_TEXT;
Content-type:text/html

<html>
<head>
<title>Nachrichten:</title></head>
<body>
<center>
<h3>Bestätigung:</h3>
<p>Ihre Nachricht wurde an die Adresse $to verschickt!
<br>
Klicken Sie hier um eine neue Nachricht zu verfassen</p></center>

</body></html>HERE_TEXT

Vielen Dank schonmal!!
Gruß

8 Antworten zu dieser Frage

  1. Antwort von nach 16 Minuten 0 hilfreich
    Re: Premature end of script headers

    Hallo,

    :</body></html>HERE_TEXT
    


    iirc muss HERE_TEXT in einer eigenen Zeile stehen.

    HTH,
    Moritz

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Premature end of script headers

      Hallo,
      das funktioniert aber auch nicht. Die Fehlermeldungen bleiben dieselben. Gibt es sonst noch eine Möglichkeit?

      Gruß

      • Antwort von nach 2 Stunden 0 hilfreich
        Re^3: Premature end of script headers

        Hallo,
        das funktioniert aber auch nicht. Die Fehlermeldungen bleiben
        dieselben. Gibt es sonst noch eine Möglichkeit?

        Gruß
        Steht es in einer eigenen Zeile und völlig ohne Leerzeichen oder Tabulatoren davor und danach?

        Ciao
        Kaj

        • Antwort von nach 2 Stunden 0 hilfreich
          Re^4: Premature end of script headers

          Steht es in einer eigenen Zeile und völlig ohne Leerzeichen
          oder Tabulatoren davor und danach?

          Ciao
          Kaj
          Das steht in einer eigenen Zeile ohne etwas davor oder danach.
          Einfach nur HERE_TEXT. So steht es jedenfalls in meinem "schlauen"
          Heft.

          Gruß
          Frank

          • Antwort von nach 4 Stunden 0 hilfreich
            Re^5: Premature end of script headers

            P.S. Habe gerade versucht, dieses Problem in einem anderen Forum
            zu veröffentlichen und da zeigte mir die Vorschau auf einmal
            den ausgeführten HTML Code an. Da stand dann:
            Bestätigung:
            Die Nachricht wurde an $to versendet.
            Klicken Sie hier um eine neue Nachricht zu erstellen.

            Habe ich vielleicht vergessen, etwas zu installieren?
            Gruß [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  2. Antwort von nach 6 Tagen 0 hilfreich
    Re: Premature end of script headers

    Hi Frank,

    ich weiss nicht, ob Du schon die / eine Lösung gefunden hast,
    aber hast Du hinter

    </body></html>
    HERE_TEXT
       <=

    ein "Enter" gemacht?
    Perl ist manchmal etwas eigenwillig bei solchen Vergessern...

    BTW:
    #!c:/perl/bin/perl -wT
    ist eigentlich der Standard-ShaBang, da dann die Warnungen etwas mehr werden (wenn auch nicht unbedingt klarer)

    CU (M)ike

    • Antwort von nach 7 Tagen 0 hilfreich
      oT: shebang

      Hallo, BTW:
      #!c:/perl/bin/perl -wT
      ist eigentlich der Standard-ShaBang, da dann die Warnungen
      etwas mehr werden (wenn auch nicht unbedingt klarer)
      Einspruch.
      Dann kommen keine Warnungen wenn man es als
      perl skriptname.pl
      aufruft. Deswegen halte ich
      #!/usr/bin/perl
      use warnings
      für sinnvoller...

      Grüße,
      Moritz

      • Antwort von nach 7 Tagen 0 hilfreich
        Re: oT: shebang

        Hi Moritz,

        ich denke mal, er ruft es nicht direkt mit Perl auf.

        Und wenn doch dann eben so:

        perl -wT sendmail1.pl

        Denn dann haben die Kommandozeilenparameter Vorrang von denen im Shebang...
        (dadurch wird die Fehlermeldung des "T"-Parameters beim Direktaufruf mit Perl umgangen)

        "use warnings" hat sicherlich den Vorteil, das die Warnungen nur für diese Datei gilt und nicht für die eingebundenen Module.
        Hat beides Vor- und Nachteile (da streiten sich die Experten schon seit Einführung des Pragmas "use warnings" drüber ;-)

        CU (M)ike

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!