[cgi,perl,content type]cgi nur als text (s.u.)

Hallo,
unten wurde mal ein ähnliches Prbl. beschrieben - allerdings kann das eigentlich nicht die gleiche Ursache haben.

bei mir wurden auch cgi-scripte als txt angezeigt.
die Ursache war bei mir, dass ich im script zuerst den content-type text/plain und erst später dann text/html aufrufe.
kann man denn den content-type nur einmal pro skript setzen?

  1. allgemeinere Frage (html/cgi-dummy am start…):
    im „Einführung in Perl“ - o’reilly-Buch steht, dass hinter der content-type zeile unbedingt eine Leerzeile stehen muss?!? das kann ich nicht bestätigen.?!?!? ich glaube aber bei der Güte des Buchs nicht, dass das ne Ente ist??!!!??
    Ausserdem kann ich den Content-type alternativ mit " aufrufen und nicht, wie im Buch beschrieben ohne ". Kann mir das jemand erklären?

Danke!

bosmiq

Hallo,
unten wurde mal ein ähnliches Prbl. beschrieben - allerdings
kann das eigentlich nicht die gleiche Ursache haben.

bei mir wurden auch cgi-scripte als txt angezeigt.
die Ursache war bei mir, dass ich im script zuerst den
content-type text/plain und erst später dann
text/html aufrufe.
kann man denn den content-type nur einmal pro skript setzen?

ja, so ist es. du kannst ja kein Dokument schicken, daß halb text und halb html ist. was sollte der browser auch damit anfangen.

  1. allgemeinere Frage (html/cgi-dummy am start…):
    im „Einführung in Perl“ - o’reilly-Buch steht, dass hinter der
    content-type zeile unbedingt eine Leerzeile stehen muss?!? das
    kann ich nicht bestätigen.?!?!? ich glaube aber bei der Güte
    des Buchs nicht, dass das ne Ente ist??!!!??

das ist korrekt. der kleinste gültige (Http-)Header ist

print "Content-Type: text/html\n\n";

an den zwei \n´s siehst du daß eine Leerzeile folgen muß.

Übrigens: der Http-Header (Content-Type:…) ist was anderes als der Html-Header (…)!!
am anfang ist das leicht zu verwechseln.

Ausserdem kann ich den Content-type alternativ mit " aufrufen
und nicht, wie im Buch beschrieben ohne ". Kann mir das jemand
erklären?

Dazu mußt du bitte etwas deutlicher werden.

holli

Hi Markus!

Danke erstmal. Noch einiger Ergänzungen im Text:

Hallo,
unten wurde mal ein ähnliches Prbl. beschrieben - allerdings
kann das eigentlich nicht die gleiche Ursache haben.

bei mir wurden auch cgi-scripte als txt angezeigt.
die Ursache war bei mir, dass ich im script zuerst den
content-type text/plain und erst später dann
text/html aufrufe.
kann man denn den content-type nur einmal pro skript setzen?

ja, so ist es. du kannst ja kein Dokument schicken, daß halb
text und halb html ist. was sollte der browser auch damit
anfangen.

Dann muss ich also definitiv mehrere Doks oder forms schicken. okay.

Übrigens: der Http-Header (Content-Type:…) ist was anderes
als der Html-Header
(…)!!
am anfang ist das leicht zu verwechseln.

ahh, guter Hinweis…:smile:

Ausserdem kann ich den Content-type alternativ mit " aufrufen
und nicht, wie im Buch beschrieben ohne ". Kann mir das jemand
erklären?

Dazu mußt du bitte etwas deutlicher werden.

eh, das ist wohl zu einfach:smile: Ich kann doch schreiben:
print

kann man denn den content-type nur einmal pro skript setzen?

ja, so ist es. du kannst ja kein Dokument schicken, daß halb
text und halb html ist. was sollte der browser auch damit
anfangen.

Dann muss ich also definitiv mehrere Doks oder forms schicken.
okay.

sowieso. jedes Teildokument einer Html (Bilder etc) wird in einem extra request geholt. besorg dir mal Naviscope. Da kann man (u.a.) die einzelnen Requests gut beobachten.

Übrigens: der Http-Header (Content-Type:…) ist was anderes
als der Html-Header
(…)!!
am anfang ist das leicht zu verwechseln.

ahh, guter Hinweis…:smile:

Hehe, daß hat mich am Anfang auch verwirrt. :smile:)

[…]

eh, das ist wohl zu einfach:smile: Ich kann doch schreiben:
print

print
Daß ist egal. perl kennt viele arten zu quoten. Man nimmt immer die Art die gerade am besten passt.

Das folgende ist alles gültig:

# equiv. zu "test":
 $s = qq|test|;
 $s = qq/test/;
 $s = qq(test);
 $s = qq[test];
 #
 # equiv. zu 'test':
 #
 $s = q|test|;
 $s = q/test/;
 $s = q(test);
 $s = q[test];
 #
 # usw.

cu

1 Like

Hi Markus,

Danke nochmal für Deine Tipps!
Das mit den „1000 Arten zu quoten“ muss einem ja mal einer sagen…:smile: Wieder ein guter Hinweis!
Diese (in meinem Fall echt guten) Einführungsbuch-Schreiber haben glaub ich nie eine Sache wirklich „from scratch“ gelernt - gewisse Basics sind bei denen gleich im 3. Chromosomen o.ä. vorhanden…:smile: Und uns bringen sie zwar viel bei, aber gewisse Sachen erfährt man dann erst sehr spät… Und dann fällt ein Teil des Waldes…

Gruesse,

bosm.