Christian Kruse: HTML & CGI

Hi,

einige von euch kennen sicher folgendes:

print "<FORM NAME="xyz" METHOD="post" ACTION="xyz.pl">\n";
usw.

Es ist ausgesprochen LÄSTIG, die HTML-Zeichen, die jedoch in Perl auch eine Bedeutung haben, zu maskieren.... man stelle sich vor, eine halbe Stunde Programmier-Arbeit und das ganze Script läuft nicht, nur weil man irgendwo vergessen hat, ein blödes " zu maskieren! Dann beginnt das Debugging.....

Nun, ich habe mir ein Script geschrieben, das einem diese Arbeit abnimmt; ich bräuchte nur noch Tester ;-)

Alle, die Interesse haben, sollen sich BITTE bei mir melden (CK1@apexmail.com)

verzweifelt suchend,

Christian Kruse

  1. Hi Christian Kruse

    print "<FORM NAME="xyz" METHOD="post" ACTION="xyz.pl">\n";

    Wenn das Script nicht zu lang ist, kannst du es ja mal posten.

    Wenn du aber innerhalb des Strings den du printen willst, keine Variablen o.ä. auflösen musst (wie in deinem oberen Beispiel) kannst du diesen einfach in einfache Anführungszeichen setzten. Du musst dann nichts mehr maskieren, weil der Interpreter darin nichts ersetzt.

    Obriges Beispiel:

    print '<FORM NAME="xyz" METHOD="post" ACTION="xyz.pl">'."\n";

    Achso das Newline muss er natürlich ersetzen, also hängst du es einfach mit dem . Operrator, der zwei Strings kontaktiert, zusammen.

    Viel Spass beim Perl'n...

    ALEX

  2. Hi,

    einige von euch kennen sicher folgendes:

    print "<FORM NAME="xyz" METHOD="post" ACTION="xyz.pl">\n";
    usw.

    Es ist ausgesprochen LÄSTIG, die HTML-Zeichen, die jedoch in Perl auch eine Bedeutung haben, zu maskieren....

    Warum machst Du es nicht so:

    print<<HTMLZEUGS;
    <FORM NAME="xyz" METHOD="POST" ACTION="xyz.pl">
    usw.
    </FORM>
    HTMLZEUGS

    Funktioniert auch, und man muß nur die @s (bei Mailadressen z.B.) und $s maskieren.

    Grüßle,

    Bea

  3. Es ist ausgesprochen LÄSTIG, die HTML-Zeichen, die jedoch in Perl auch eine Bedeutung haben, zu maskieren.... man stelle sich vor, eine halbe Stunde Programmier-Arbeit und das ganze Script läuft nicht, nur weil man irgendwo vergessen hat, ein blödes " zu maskieren! Dann beginnt das Debugging.....

    Und das sieht bei mir so aus, daß ich das entsprechende Skript einfach über die Kommandozeile aufrufe - dann wird Perl mir solch triviale Syntaxfehler sofort mitteilen. "use strict" usw. sind ja selbstverständlich, wenn man einen ordentlichen Programmierstil haben will.

    Wenn ich für die Verarbeitung auf die konkreten CGI-Parameter angewiesen bin, dann macht das gar nichts, solange ich den Standard-Modul CGI verwendet habe: Der begreift nämlich, daß das Skript nicht über die normale CGI-Schnittstelle aufgerufen wurde, und promptet CGI-Parameter im Dialog.

    Und selbst wenn ich das nicht hätte, würde ich mir einfach eine kleine Batch-Daten schreiben, welche der Environment-Variablen QUERY_STRING die passende Parameterliste zuweist - diese hole ich mir per cut&paste aus einem Browser, mit dem ich das Skript einmal über das passende HTML-Frontend aufgerufen habe. Einen lokalen Webserver zum Testen muß man ja ohnehin haben.

    Also: Wo ist der Bedarf für Dein Skript?