/PERL Wie kann ich das dem Validator beibringen ?
xNeTworKx
- html
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 ?
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
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
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
Hi,
achso jetzt versteh ich =)
& 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...'.