Alexander Foken: Html code den netscape erstellt!

Beitrag lesen

Hallo,

Moin Moin !

ich tippe mal, das du das:

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

print "Content-type: text/html\r\n\r\n";

Denn der Header hat CR/LF als Zeilenende, nicht nur LF. Wenn man es ganz genau nimmt, müßte man eigentlich sogar \015\012 statt \r\n schreiben (denn \r und \n sind laut Perl-Handbuch nicht immer ASCII 13 und ASCII 10), also:

print "Content-type: text/html\015\012\015\012";

Ich spare mir dieses ganze plattformabhängige Affentheater, und das eigenständige zerlegen der diversen Request-Daten. Meine CGIs sehen ungefähr so aus:

#!/usr/local/bin/perl -Tw

use strict;

use CGI qw(:all);

print
    header(),
    start_html('Demo'),
    h1('Demo'),
    end_html();

-T -- Tainted Mode, denn beim CGI-Schreiben hat man paranoid zu sein!

-w -- Warnings, denn schließlich will ich keinen schlechten Code

use strict -- Strengere Code-Prüfung, macht etwas mehr Arbeit beim Coden, spart aber viel Arbeit beim Debuggen.

use CGI -- Warum soll ich immer wieder den Code für die CGI-Spec neu erfinden, wenn Lincoln D. Stein ein ("das") Standard-Modul für CGIs gebaut hat, das zudem viele perverse Sonderfälle berücksichtigt und ausbügelt ? Dieses Modul ist bei jedem Perl 5 dabei, warum soll ich es dann nicht benutzen ?

print '<!DOCTYPE ....";

^-- auch das macht das CGI-Modul.

vergessen hat-  bzw. kein Modul verwendest, welches dir dabei hilft...

Mein Reden ...

Alexander