Newsscript mit CGI

köNICK

Grünschnabel
Also Ich habe ein Problem mit einem Script in CGI es sind 2 Fehler die Ich aber nicht zu beheben weiß. Vielleicht kann sich das mal einer angucken und mir helfen wenn jemand das Ding online ausprobieren möchte geht auf http://www.busenkumpels.net/eingabe.htm

Hier der Code:
PHP:
#!/usr/bin/perl -w 

use CGI; 
my $cgi = new CGI; 
use CGI::Carp qw(fatalsToBrowser);
my $topic = $cgi->param('ueberschrift'); 
my $thread = $cgi->param('text');
my $name = $cgi->param('name');
my $email = $cgi->param('email');
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, 
$Jahr) = localtime(time); 
my $CTIME_String = localtime(time); 
$Monat+=1; 
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat; 
$Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag; 
$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden; 
$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten; 
$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden; 
$Jahr+=1900;
my @NeuerEintrag; 
push(@NeuerEintrag, "<!-- EINTRAG -->\n"); 
push(@NeuerEintrag, "<br><b>$topic</b> - von <a href='mailto:$email'>$name</a> - $Monatstag.$Monat.$Jahr, $Stunden:$Minuten:$Sekunden\n");
push(@NeuerEintrag, "<hr noshade size=1>\n"); 
push(@NeuerEintrag, "<br>$thread\n"); 
push(@NeuerEintrag, "<br>\n");
open(DATEI, ">news.htm") || die "File not found"; 
my @Zeilen = <DATEI>; 
close(DATEI);
my @NeueZeilen; 
my $Zeile; 
foreach $Zeile (@Zeilen) { 
if($Zeile =~ /<!-- EINTRAG -->/) { 
foreach(@NeuerEintrag) { 
push(@NeueZeilen,$_); 
} 
} 
else { 
push(@NeueZeilen,$Zeile); 
} 
}
open(DATEI, ">news.htm") || die "File not found"; 
print DATEI @NeueZeilen; 
close(DATEI);
print "Content-type: text/html\n"; 
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n"; 
print "<html><head><title>done.</title></head><body>\n"; 
print "<br><div align=center><b>done.</b><br>\n"; 
print "@NeuerEintrag\n"; 
print "</body></html>\n";

Wäre nett wenn mir dazu jemand helfen könnte.
DANKE...
 
Das Problem ist vermutlich, das du den Header nicht richtig ausgibst:

Code:
print "content-type: text/html\n"; # Falsch, da fehlt ein \n!
print "content-type: text/html\n\n"; # Richtig! ;)

print $cgi->header("text/html"); # Noch besser als die obere Variante! ;)

Damit dürftest es dann klappen...zumindest mal, das du nicht nur nen dummen internal server error bekommst, sondern eben auch eine entsprechende Fehlermeldung.

Wenn du Zugriff auf deine Error.log von dem Webserver hast, lohnt es sich höchstwahrscheinlich auch einen Blick da rein zu werfen. Sollte da was von "Premature End Of Script Headers" stehen, dann liegts eben an dem falsch ausgegeben Content-Type.

Schönen Dienstag noch,
Sven
 
sauber jetzt funktioniert das, was noch ganz nützlich wäre, ein befehl der nach 5 sekunden oder so die Seite zu der eigentlichen News.htm weiterleitet... Aber sonst danke!!!

update= ok hat sich erledigt ;) danke
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück