Warum geht das Skript nicht
Julian
- perl
0 Cheatah
Hallo Forummer,
ich habe ein Problem mit meinem Chat-Skript, zum Auslesen der Chat-Datei. Hier ist die Datei:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><body bgcolor="#FF7F00">";
@Zeilen = ("");
open(CHAT, "<chat.txt") "";
while(<CHAT>)
{
push(@Zeilen, $_);
}
for(@Zeilen)
{
if($_ eq "") { }
else
{
print "<script language="Javascript"><!--\n";
print "parent.frames[1].open();\n";
print "parent.frames[1].document.writeln("<html>\n<body bgcolor=\"#FF7F00\" text=\"#0000FF\" scroll=\"yes\">\n");\n";
print "parent.frames[1].document.writeln("", $_, "");\n";
print "parent.frames[1].document.writeln("\n<a name=\"#Daten\">\n</body></html>");\n";
print "parent.frames[1].close();\n";
print "parent.frames[1].location.href="#Daten";\n";
print "location.reload();\n";
print "// -->\n</SCRIPT>";
}
}
print "</body></html>";
Beide Browser verarbeiten die Datei korrekt, bilden aber bei jedem Durchgang ein Pop-Up-Fenster mit der Inhaltsdatei "about:blank". Nur noch ein Tip. Die Datei CHAT.TXT ist einzeilig, daran liegt es also nicht.
Danke im Vorraus,
euer Juli
Hi,
#!/usr/bin/perl
#!/usr/bin/perl -w
use strict;
print "Content-type: text/html\n\n";
print "<html><body bgcolor="#FF7F00">";
print '<html><body bgcolor="#FF7F00">';
@Zeilen = ("");
my @Zeilen; # besser: my @zeilen;
open(CHAT, "<chat.txt") "";
*hüstel* Dein or-Teil bringt nichts, absolut nichts.
open(CHAT, 'chat.txt') or die "Kann chat.txt nicht oeffnen: $!";
while(<CHAT>)
»» {
»» push(@Zeilen, $_);
»» }
@zeilen = <CHAT>; # kein Grund für 'ne Schleife
for(@Zeilen)
»» {
if($_ eq "") { }
else
if ($_ ne '') {
{
print <<EOP;
<script language="JavaScript" type="text/javascript">
<!--
[...]
EOP
Beide Browser verarbeiten die Datei korrekt, bilden aber bei jedem Durchgang ein Pop-Up-Fenster mit der Inhaltsdatei "about:blank".
Tja, was meinst Du wohl, was
print "parent.frames[1].open();\n";
verursacht? frames[1] ist ein window-Objekt, Du führst also window.open() aus :-) Du möchtest also ein document einschieben. Gleiches gilt übrigens für das spätere close().
Cheatah