xNeTworKx: /PERL Wie kann ich das dem Validator beibringen ?

Hi nochmal,
Ich hab folgendes kleines Problem. Ich übergebe mit einem Link 2 Variablen :
print "<td><a href="$url?action=flyer&url=$1">Flyer</a></td></tr>\n";

Wenn ich das HTML, das aus dem Perl Script ausgegeben wird durch den Validator jage, bekomme ich folgende Meldung :
 Below are the results of attempting to parse this document with an SGML parser.

* Line 31, column 50:

.../forum2/index.cgi?action=flyer&url=http://forum.ac ...
                                  ^

Error: unknown entity "url"

Was meint der da mit seinem unbekanntem URL Dasein ?
Ich kann nun mal nicht anders 2 Variablen übergeben, oder wie soll ich das laut dem W3C lösen ?

  1. Yo!

    * Line 31, column 50:

    .../forum2/index.cgi?action=flyer&url=http://forum.ac ...
                                      ^

    Error: unknown entity "url"

    & statt & nehmen. & leitet bekanntlich Entities ein. Wenn du ein & im Link haben willst, muß das maskiert werden. Wenn du ein "ä" im Link hast, würde das mit "ä" maskiert werden - oder vielleicht mit einer %-Nummer.

    PS: Das Thema ist schon uralt, und etliche Male im Archiv auffindbar.

    - Sven Rautenberg

    1. Hallo,
      das mit den Umlauten habe ich gewusst, aber es war mir neu, daß man auch das & maskieren muss. Auf jeden Fall klappts jetzt, danke

      1. Hi,

        aber es war mir neu, daß man auch das & maskieren muss.

        wenn Du in Perl (innerhalb von Doublequotes) z.B. ein "@" ausgeben willst, musst Du "@" schreiben. Der Backslash hat hier die selbe Bedeutung wie das "&" in HTML: er ist das Escape-Zeichen.

        Wenn Du das Escape-Zeichen ausgeben willst, musst Du es maskieren.

        Das ist das ganze Geheimnis dahinter :-)

        Cheatah

        1. Hi,
          achso jetzt versteh ich =)

    2. & statt & nehmen. & leitet bekanntlich Entities ein. Wenn du ein & im Link haben willst, muß das maskiert werden. Wenn du ein "ä" im Link hast, würde das mit "ä" maskiert werden - oder vielleicht mit einer %-Nummer.

      Es *muss* letzteres sein, da URIs kein 'ä' enthalten dürfen. Dazu wird das 'Ä' in Normalisierungsform C dargestellt, nach UTF-8 konvertiert und die %hh Kodierung für URIs, sprich, es würde daraus '...%C3%A4...'.