|
|
Unerklärliche Fehlermeldung (general entity not defined) bei Link mit Parameterübergabe |
Frage:Bei der Validierung eines Dokuments meldet der Validator folgenden Fehler:
Line 111, column 22:
... <a href="/script.cgi?blubb=dingdong&bla=brabbel& ...
^
Error: general entity "bla" not defined and no default entity
Was mache ich falsch? Antwort:Das "&" ist ein Sonderzeichen, dass in HTML-Dokumenten grundsätzlich als "&" geschrieben werden muss, damit die Seite valid ist. Das gilt auch, wenn es in einem Link vorkommt. Der Attributwert von href ist zwar eine URI-Referenz, doch diese ist CDATA und muss in HTML korrekt maskiert werden. Dies bedeutet, dass jedes &, welches als Parameterseparator dient, als & geschrieben werden muss. Richtig wäre also: <a href="/script.cgi?blubb=dingdong&bla=brabbel& ... Das W3C empfiehlt, in href- und src-Attributen statt & ein Semikolon (;) als Parameterseparator zu verwenden. Dies benötigt aber in der Regel eine Anpassung des verarbeitenden Skripts. Das häufig benutzte Perl-Modul CGI.pm unterstützt sowohl ; als auch & als Parameterseparator. Dies ist sowieso sinnvoll, da dann auch per GET übertragene Formulare, welche vom Browser her stets & als Separator verwenden, immer noch funktionieren. Siehe auch:
zeigt auf, was im Zusammenhang mit Parameterübergabe in der URL so alles schieflaufen kann. (dw) | |
| [Diesen Eintrag erweitern] | |
| , |
| Vorhergehende: |
|
| Nächste: |
|
| ||||||||||
| [Sitemap] |