Dirk Schwedler: print html-Text - Syntax

Entweder ich habe tomaten auf den Augen oder ich mache etwas fundamental falsch. Kann jemand mal einen Blick auf  dies Skript werfen?

#!perl

print "Content-type: text/html\n\n";
print "<html><head><title>Popup-Seite</title></head>\n";
print "Text</h1>\n";
print "<a href="javascript:window.close()">close</a>\n";
print "</body></html>\n";;
exit(0);

Das error-log von Apache sagt mir dazu folgendes:

[Mon Sep 08 11:46:36 2003] [error] [client 127.0.0.1] Bareword found where operator expected at g:\apache\cgi-bin\status.pl line 12, near ""<a href="javascript"
[Mon Sep 08 11:46:36 2003] [error] [client 127.0.0.1]  (Missing operator before javascript?)
[Mon Sep 08 11:46:36 2003] [error] [client 127.0.0.1] String found where operator expected at g:\apache\cgi-bin\status.pl line 12, near ")">close</a>\n""
[Mon Sep 08 11:46:36 2003] [error] [client 127.0.0.1]  (Missing operator before ">close</a>\n"?)

Aha. Nur was ist ein Bareword?

  1. Hi,

    Entweder ich habe tomaten auf den Augen oder ich mache etwas fundamental falsch.

    Letzteres:

    print "<a href="javascript:window.close()">close</a>\n";

    ^                         ^
    Hier liegt der Fehler. Ersetze die doppelten Anführungszeichen durch einfache, dann sollte die Fehlermeldung nicht kommen. Da der ausgelieferte Code an einigen Stellen falsch ist, solltest du diesen auch noch korrigieren.

    Viele Grüße
    Torsten

  2. Holla,

    print "Content-type: text/html\n\n";
    print "<html><head><title>Popup-Seite</title></head>\n";
    print "Text</h1>\n";
    print "<a href="javascript:window.close()">close</a>\n";
    print "</body></html>\n";;
    exit(0);

    print "Content-type: text/html\n\n";
    print "<html><head><title>Popup-Seite</title></head>\n";
    print "Text</h1>\n";
    print "<a href="javascript:window.close()">close</a>\n";
    print "</body></html>\n";
    exit(0);

    So sollte es gehen, weil Du " " die im HTML Quelltext vorkommen quoten musst, damit Perl weiss wo die " " vom Perl string anfangen und enden.

    Gruss
    Andreas

  3. hi unbekannter

    Entweder ich habe tomaten auf den Augen oder ich mache etwas fundamental falsch. Kann jemand mal einen Blick auf  dies Skript              werfen?

    stimmt du hast keine begrüßung :-((

    print "<a href="javascript:window.close()">close</a>\n";

    ^                         ^
                        Hier ist der Knieschuß

    deine print anweisung machst du mit " auf und mittendrin kommt wieder ein " ist das jetzt das ende der print anweisung ??

    maskiere die innere " mit \ also so "

    oder schreib deinen HTML so

    print <<HTML;   <=  hier mit machst du den schreibblock auf

    html code ganz normal

    HTML    <= und hier wieder zu wichtig!!   es darf nur der Handel dort stehen

    bis bis roman

  4. Es waren also doch die Tomaten. So groß wie die waren kann ich da eine komplette Ketchupflasche von machen. ICH DANKE EUCH!!!!