Probleme bei der Ausgabe eines Hier-Dokuments
knisterq
- cgi
0 Rolf0 knisterq
0 Stephan Melchior0 Cheatah
Ich fang grade erts mit Perl/CGI an und hab noch einige grundlegende Probleme.
z.B. möchte ich ein Hier-Dokument auf meinem Browser(IE) ausgeben und es kommt nichts! auch keine Fehlermeldung. Ich hab einen lokalen server installiert, die Pfade stimmen, im error_log_file steht nichts...
print <<'HDOK';
Content-type: text/html
<html>
<head><title>test eines hier-dokuments</title></head>
<body>
<h1>das ist mein hier-dokument</h1>
</body>
</html>
HDOK
...was mch ich falsch?
Ähnliche Probleme hab ich mit einem script das mit side-by-side Frames arbeitet. Da bekomme ich wenigstens die Überschrift aber keinen Input und auch keine Frames.
Danke schon mal, knisterq!
Hi
Content-type: text/html
danach muss eine Leerzeile kommen.
Viele Grüße, Rolf
Hi
Content-type: text/html
danach muss eine Leerzeile kommen.
Viele Grüße, Rolf
Danke Jungs, aber das ist es nicht! Ich bekomme ja keine Fehlermeldung - nur eine leere Seite angezeigt!
ich glaube eher, daß irgendwas mit meinen server Einstellungen nicht stimmt. Vielleicht kann ja jemand was mit dem Protokollauszug anfangen! Ach ja, mein lokaler server ist omnihttp!
127.0.0.1 knisterq - [23/May/2000:13:40:41 +0200] "GET /3.pl HTTP/1.1" 200 - "" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)"
[Standard CGI Launch] WorkPath: C:\perl\proton CmdLine: "C:\PERL\BIN\PERL.EXE" "C:\perl\proton\3.pl" Args: Path Info: /3.pl
Danke, knisterq.
Ich fang grade erts mit Perl/CGI an und hab noch einige grundlegende Probleme.
z.B. möchte ich ein Hier-Dokument auf meinem Browser(IE) ausgeben und es kommt nichts! auch keine Fehlermeldung. Ich hab einen lokalen server installiert, die Pfade stimmen, im error_log_file steht nichts...print <<'HDOK';
Content-type: text/html
<html>
<head><title>test eines hier-dokuments</title></head>
<body>
<h1>das ist mein hier-dokument</h1>
</body>
</html>
HDOK...was mch ich falsch?
Ähnliche Probleme hab ich mit einem script das mit side-by-side Frames arbeitet. Da bekomme ich wenigstens die Überschrift aber keinen Input und auch keine Frames.
Danke schon mal, knisterq!
Hallo knisterq,
das erste Problem liegt Darin, dass Du zwischen dem HTTP-Header (Zeile Content-type: text/html) und dem HTTP-Body
die obligatorische LEERZEILE vergessen hast.
Das zweite Problem sind deine Quotierungszeichen. Scheinbar verwendets Du Backticks (`). Das ist falsch, da das
Perlskript den nachfolgenden Text als Systembefehl interpretiert. Du solltest doppelte Anführungszeichen verwenden ("), damit
auch eine Variablenevaluierung im Hier-Dokument stattfindet.
Normalerweise müsste der Server allerdings mit einer 500 Fehlermeldung antworten!
Richtig lautet die Ausgabe also so:
print <<"HDOK";
Content-type: text/html
<html>
<head><title>test eines hier-dokuments</title></head>
<body>
<h1>das ist mein hier-dokument</h1>
</body>
</html>
HDOK
Gruss
Stephan
Hi,
Das zweite Problem sind deine Quotierungszeichen. Scheinbar verwendets Du Backticks (`).
nein, es sind Singlequotes. Backticks wären aber in der Tat falsch.
Du solltest doppelte Anführungszeichen verwenden ("), damit auch eine Variablenevaluierung im Hier-Dokument stattfindet.
Und genau wenn er das nicht möchte (oder braucht), sind Singlequotes die richtige Wahl :-)
Doublequotes können übrigens auch weggelassen werden.
Cheatah