IE auf Mac hängt sich auf
sprain
- perl
0 Cheatah
Hallo zusammen
Ich habe da mal eine Fragen, bei der ich auf keine schlaue Antwort komme:
Ich hab ein Perl-Script geschrieben. Alles läuft wunderbar. Nur wenn man mit einem Internet Explorer auf MAC zugreift erscheint eine Fehlermeldung
"Fehler bei Zugriff auf http://www.xxxxx.xx/cgi-bin/script.cgi..."
Nicht jedesmal, aber oft.
Einige Tests haben jetzt ergeben, das es wahrscheinlich an folgendem Baustein liegt (als Hinweis: es wird eine bestehende HTML-Seite geöffnet, mit der sub ersetzen() bestimmte Platzhalter ersetzt und die Seite dann ausgegeben).
$bestellpath=$BASEDIR.$DIRDELIM.$BESTELL;
open(TEMPLATE, $bestellpath) die "Kann Template nicht oeffnen";
$result_page = "";
while (<TEMPLATE>) {
ersetzen();
$result_page .= $_;
}
print "$result_page\n";
Was kann ich tun ? Wie gesagt, nur IE auf MAC. NS geht, auf Windows gehen sowohl IE als auch NS.
Dankeschön,
sprain
Hi,
"Fehler bei Zugriff auf http://www.xxxxx.xx/cgi-bin/script.cgi..."
Nicht jedesmal, aber oft.
was steht zu diesen Zugriffen im Server- und/oder Error-Log?
Einige Tests haben jetzt ergeben, das es wahrscheinlich an folgendem Baustein liegt
Tja, ich finde nicht, woran es liegen könnte... also hake ich mal nach:
$bestellpath=$BASEDIR.$DIRDELIM.$BESTELL;
$BASEDIR ist am Rootverzeichnis des Filesystems angelehnt, hoffe ich?
»» open(TEMPLATE, $bestellpath) die "Kann Template nicht oeffnen";
In dem "or die" solltest Du _unbedingt_ $! und ggf. $? ausgeben lassen! Im Error-Log steht dann mehr.
$result_page = "";
Warum interpolierst Du einen Leerstring?
$result_page = ''; # beachte die Singlequotes
while (<TEMPLATE>) {
ersetzen();
Der Funktion solltest Du dringend den zu ersetzenden Wert übergeben, der dann mit return zurückgeliefert wird:
$_ = &ersetzen($_); # eigene Funktionen mit &funktionsname aufrufen
print "$result_page\n";
Hm, das "\n" am Ende dürfte auch nicht schuld sein.
Was kann ich tun ?
Deine Scripts ein wenig verschönern:
#!/usr/bin/perl -w
use strict;
statt nur
#!/usr/bin/perl
Der Fehler wird dadurch zwar auch nicht korrigiert werden, aber vielleicht findest Du einige andere, die Du ohne "-w"arnungen nicht bemerkt hast.
Cheatah