W3C Validator Fehler bei get-string
Heizer
- html
0 Sasha0 Sven Rautenberg0 Tetrapak O-Saft0 Heizer
Lieber Frühaufsteher
Ich lasse gerade meine seite vom w3c validator überprüfen, und bekomme immer diese Fehlermeldung, wenn ich auf XHTML 1.0 Transitional prüfe
</a></td><td><a href='../../index.php?javascript=off&PHPSESSID=c69c11c
^
Error: unknown entity "PHPSESSID"
<td><a href='../../index.php?javascript=off&PHPSESSID=c69c11c94702b3be
^
Error: reference not terminated by refc delimiter
nu weiß ich aber wirklich nicht, was der Validator dagegen einzuwenden hat, für mich sieht das nach einem normalen Get-string aus (ich denke, daß die sich beim session-modul von PHP schon soviel gedanken gemacht haben, daß dies eigentlich kein Fehler sein kann).
Ist es dann ein Fehler im Validator???????? kann ich mir genausowenig vorstellen. Weiß jemand die Antwort?
wenn ich auf HTML 4.0 Transitional prüfe bekomme ich auch zwei unverständliche Fehler:
Gibt es überhaupt eine Möglichkeit, eine Datei sowohl HTML 4.0 also auch XHTML 1.0 konform zu schreiben?
vielen dank für die frühe mühe (denn alles was sich reimt ist gut)
Heizer
Du solltest & statt & in deiner URL verwenden.
Yo!
</a></td><td><a href='../../index.php?javascript=off&PHPSESSID=c69c11c
^
Error: unknown entity "PHPSESSID"
Das &-Zeichen mus maskiert werden als &.
<td><a href='../../index.php?javascript=off&PHPSESSID=c69c11c94702b3be
^
Error: reference not terminated by refc delimiter
Folgefehler von oben: & leitet Entities ein, ein ; beendet sie. Wenn ein & kommt, muß zwingend ein ; folgen (und dazwischen Text).
wenn ich auf HTML 4.0 Transitional prüfe bekomme ich auch zwei unverständliche Fehler:
- angeblich darf das <img>-Tag kein Atribut 'name' enthalten (entgegen der HTML-Refferenz http://selfhtml.teamone.de/html/referenz/attribute.htm#img
Nimm HTML 4.01 Transitional. Genau diese kleine Änderung macht den Unterschied.
- wenn ich meta-angaben XML-konform als leer kennzeichne <meta ... />, bekomme ich ab der zweiten meta-angabe die Meldung, das meta-angaben hier nicht erlaubt seien. Meines Wissens sollte HTML aber eigntlich keine Schwierigkeiten mit diesen abschlußzeichen haben.
HTML 4.01 oder XHTML 1.0? Kann mir nicht so recht vorstellen, daß XHTML das als Problem sieht.
Gibt es überhaupt eine Möglichkeit, eine Datei sowohl HTML 4.0 also auch XHTML 1.0 konform zu schreiben?
Nein. Eines von beiden geht nur. Entweder schreibst du HTML 4.01, oder du schreibst XHTML 1.0. Festlegen mußt du dich durch Angabe des DOCTYPE.
- Sven Rautenberg
Gruß Heizer:
wenn ich auf HTML 4.0 Transitional prüfe bekomme ich auch zwei unverständliche Fehler:
- angeblich darf das <img>-Tag kein Atribut 'name' enthalten
Nicht nachvollziehbar.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<img src="" name="foo" alt="">
</body>
</html>
validiert ohne Murren und Jammern. Dein Fehler liegt woanders. Schaue mal in der Quelle ein paar Zeilen höher. Verringere die Komplexität deiner Quelle schrittweise, um das Problem zu isolieren.
- wenn ich meta-angaben XML-konform als leer kennzeichne <meta ... />, bekomme ich ab der zweiten meta-angabe die Meldung, das meta-angaben hier nicht erlaubt seien. Meines Wissens sollte HTML aber eigntlich keine Schwierigkeiten mit diesen abschlußzeichen haben.
Gibt es überhaupt eine Möglichkeit, eine Datei sowohl HTML 4.0 also auch XHTML 1.0 konform zu schreiben?
Du kannst keine X(HT)ML-Syntax in HTML4-Dokumenten benutzen. Es ist unmöglich, ein Dokument sowohl<->als auch zu verfassen. Lege dich auf einen Typen fest (vorzugsweise den zukunftssichereren), schreibe dementsprechend und fertig ist der Lack. Useragents, die höchstens HTML4 verstehen, werden beim Parsen von XHTML keine Probleme haben.
Tipp zur Arbeitserleichterung: HTML Tidy (siehe w3.org/) hat die Option -asxml , mit welcher sich Dokumente bequem im Stapelbetrieb nach XHTML konvertieren lassen.
Danke euch allen
Daß man das & im get-string maskieren muß, höre ich zum ersten Mal, ich dachte, daß dies soz. wirklich das sonderzeichen sein muß...
Darauf hätte in den vielen Büchern und Dakumentationen, die ich im laufe der Zeit gelesen habe, ruhig explizit hingewiesen werden können.
ABER: wenn PHP die PHPSESSID-Variable an URL's anhängt, verwendet es auch & und nicht & ! Wie soll ich dieses Problem lösen?