Perl generierte Page über Mozilla / Opera - nur Queltext!
Jonas Hauenstein
- perl
0 Benne0 Erwin0 Philipp Hasenfratz
Hallo zusammen
Ich hoffe, ihr könnt mir weiterhelfen.
Meine Seite (http://www.ps2zone.ch) wird komplett mit Perl (cgi) dynamisch erzeugt. Das Ganze klappt auch hervorragend.
Wenn ich aber mit Mozilla / Opera drauf gehe, wird nur der Quelltext angezeigt!
Nach überprüfungen auf dem Server der Apache-Config kann es nicht daran liegen. Also muss das Problem innerhalb der Scripte zu finden sein.
Grundsätzlich gebe ich sämtlichen Text auf einmal mittels subroutine an den Borwser aus. Bis dahin bleibt der gesamte Queltext in einer (mehreren) Variablen gespeichert.
Die Subroutine sieht grundsätzlich folgerndermasen aus:
#####sub printhtml - html output#####
sub printhtml {
print "Content-Type: text/html\015\012\015\012";
$_[0] =~ s/[searchurl]/$searchurl?zone=$zone/g;
@tmp = split(/[.:.]/,$_[0]);
foreach(@tmp) {
print "$_\n";
}
exit;
}
#####end sub printhtml#####
Wie ihr seht, gebe ich vor jeglicher Ausgabe
"Content-Type: text/html\015\012\015\012"
aus. Damit sollte ich doch eben dieses Problem verhindern, oder?
Ich bin echt etwas ratlos (eigentlich komplett ratlos :)) und um jede Hilfe dankbar!!
Schöne Grüsse
Jonas
Sers,
Wie ihr seht, gebe ich vor jeglicher Ausgabe
"Content-Type: text/html\015\012\015\012" aus. Damit sollte ich doch eben dieses Problem verhindern, oder?
ich frage mich gerade, wieso du \015\012 verwendest und nicht einfach \n.
Vielleicht liegt darin der Fehler, denn mein Mozilla erkennt deinen gesendeten Text laut "Info" als text/plain
Gruß,
Benne
Halihallo Benne
ich frage mich gerade, wieso du \015\012 verwendest und nicht einfach \n.
Weil http://aktuell.de.selfhtml.org/artikel/cgiperl/zeilenumbruch/index.htm!
Vielleicht liegt darin der Fehler, denn mein Mozilla erkennt deinen gesendeten Text laut "Info" als text/plain
Tja, Perl-Source-Codes sind Textdateien :-)
Das Problem ist, dass er nicht ausgeführt wird...
Viele Grüsse
Philipp
Sers,
http://aktuell.de.selfhtml.org/artikel/cgiperl/zeilenumbruch/index.htm!
wieder was dazugelernt ;)
Gruß,
Benne
tja,
print "Content-Type: text/html\015\012\015\012";
immer wieder gibts da Missverständnisse.
Es muss heißen
Content-type
_kleines_ tee
also
Content-type: text/html\n\n
\n\n ergibt eine Leerzeile.
Erwin
Halihallo Erwin
print "Content-Type: text/html\015\012\015\012";
immer wieder gibts da Missverständnisse.
Es scheint so.
Es muss heißen
Content-type
_kleines_ tee
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
"Field names are case-insensitive"
also
Content-type: text/html\n\n
\n\n ergibt eine Leerzeile.
HTTP verwendet jedoch CRLF als Delimiter und CRLF ist (s. im anderen
Posting verlinkter Feature Artikel von Roland) z.B. mit "\015\012" zu
kodieren, aber sicher nicht mit "\n".
Viele Grüsse
Philipp
Halihallo Erwin
print "Content-Type: text/html\015\012\015\012";
immer wieder gibts da Missverständnisse.Es scheint so.
Es muss heißen
Content-type
_kleines_ teehttp://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
"Field names are case-insensitive"
Na ich nehme mal an Du kennst den Unterschied zwischen Theorie und Praxis ;-)
Nimm einen Tipp vom Praktiker an: kleines "t"
Gruss, Erwin
also
Content-type: text/html\n\n
\n\n ergibt eine Leerzeile.HTTP verwendet jedoch CRLF als Delimiter und CRLF ist (s. im anderen
Posting verlinkter Feature Artikel von Roland) z.B. mit "\015\012" zu
kodieren, aber sicher nicht mit "\n".Viele Grüsse
Philipp
Halihallo Erwin
Na ich nehme mal an Du kennst den Unterschied zwischen Theorie und Praxis ;-)
Ich hab's schon zu spüren bekommen, Danke für die unschöne
Erinnerung daran :-)
Nimm einen Tipp vom Praktiker an: kleines "t"
Wenn ich denn mal an so einen Webserver stosse, der tatsächlich
Probleme mit Standards hat, ja; dann bedanke ich mich schon jetzt
für den Tipp.
Frage an dich:
Wenn es denn einen Webserver gibt, der nur 'Content-type' akzeptiert,
ist es denn nicht genauso wahrscheinlich, dass es einen Webserver
gibt, der _ausschliesslich_ 'Content-Type' akzeptiert?
Könnte ja auch sein... Aber solange man glücklicher weise nicht mit
derartigen Ignoranten arbeiten muss, ist Gross-/Kleinschreibung egal.
Basta :-)
Viele Grüsse
Philipp
Halihallo Jonas
Wenn ich aber mit Mozilla / Opera drauf gehe, wird nur der Quelltext angezeigt!
Von was? - Perl oder dem generierten HTML?
Grundsätzlich gebe ich sämtlichen Text auf einmal mittels subroutine an den Borwser aus. Bis dahin bleibt der gesamte Queltext in einer (mehreren) Variablen gespeichert.
Das ist zwar nicht allzu ratsam, da Speicheraufwändig und
Zeitaufwenig (der User möchte schnell etwas sehen), aber möglich.
#####sub printhtml - html output#####
sub printhtml {
print "Content-Type: text/html\015\012\015\012";
Das ist OK.
"Content-Type: text/html\015\012\015\012"
aus. Damit sollte ich doch eben dieses Problem verhindern, oder?
Starte das Script auf der Konsole. Was gibt es dann als erstes aus?
Diese Zeile? - Eine Fehlermeldung? - Etwas ganz anderes?
Viele Grüsse
Philipp
Halihallo Jonas
Wenn ich aber mit Mozilla / Opera drauf gehe, wird nur der Quelltext angezeigt!
Von was? - Perl oder dem generierten HTML?
Grundsätzlich gebe ich sämtlichen Text auf einmal mittels subroutine an den Borwser aus. Bis dahin bleibt der gesamte Queltext in einer (mehreren) Variablen gespeichert.
Das ist zwar nicht allzu ratsam, da Speicheraufwändig und
Zeitaufwenig (der User möchte schnell etwas sehen), aber möglich.#####sub printhtml - html output#####
sub printhtml {
print "Content-Type: text/html\015\012\015\012";Das ist OK.
Nene, das ist eben NICHT OK.
statt Type notiere type
kleines "t"
Mancher Webserver aktzeptiert das große "T" nicht.
Schönes Wochenende, Rolf
"Content-Type: text/html\015\012\015\012"
aus. Damit sollte ich doch eben dieses Problem verhindern, oder?Starte das Script auf der Konsole. Was gibt es dann als erstes aus?
Diese Zeile? - Eine Fehlermeldung? - Etwas ganz anderes?Viele Grüsse
Philipp
Hi Erwin,
zitier doch bitte mal ein bisschen knapper...
Viele Grüße
Mathias Bigge
Halihallo Erwin
#####sub printhtml - html output#####
sub printhtml {
print "Content-Type: text/html\015\012\015\012";Das ist OK.
Nene, das ist eben NICHT OK.
Es IST OK. Nur dein Webserver scheint ein bisschen ballaballa zu
sein :-)
statt Type notiere type
kleines "t"
Ja, ja, ich habs verstanden. Akzeptiere es deswegen aber nicht mehr.
Mancher Webserver aktzeptiert das große "T" nicht.
Welcher? - Auf jedenfall hat er keinen Schimmer von Standards und
ist demnach nicht zu empfehlen... (IIS? :-))
Viele Grüsse
Philipp