Kürzlich hatte ich das Problem, das der W3C-Validator XHTML-Dokumente in denen ich Session verwendet habe als ungültig markiert hat.
Nach kurzer Suche hatte ich mehrere Quellen ausfindig machen können, was die Ursachen dafür sein können:
1. '&' und '&'
In der php.ini des Webservers in unter dem Konfigurations-Attribut arg_seperator.output ist ein '&' eingetragen; laut dem W3C tolerieren XML-basierte User-Agents diese eigentlich falsche Nutzung des 'Ampersands' (&).
Mit der PHP-Funktion string ini_set(string varname, string newvalue) wird die Konfigurationsoption varname auf den Wert newvalue gesetzt.
Für die gegebene Problematik lautet die Anweisung also:
-
// Argument-Seperatorzeichen global festlegen:
2. transparente Session ID (SID)
Im Gegensatz zu cookie-basierten Session bieten SIDs in PHP eine niedrigere Sicherheit, sofern User-Zugriffe auf bestimmte Inhalte geschützt werden sollen. Mit einem weiteren Aufruf von ini_set() lässt sich die Session ID wahlweise transparent (default) oder non-transparent schalten, nicht zuletzt um HTML-Konformität zu erreichen.
-
// transparente Session ID ausschalten:
3. HTML-Tag ReWriting
Mit dieser Anweisung legt man fest, welche HTML-Tags bei der Verwendung von transparenten Session-IDs mit einer SID versehen werden (Re-Writing).
Dadurch, dass hier das Argument newvalue leer gelassen bleibt, wird durch das Re-Writing keine SID in den Code geschrieben und voila : HTML-konform.
-
// HTML-Tags festlegen, die eine SID erhalten:
Bei meinem Problem hat diese Methode in Verbindung mit der 2.ten den gewünschten Erfolg bei der W3-Validierung gebracht.
Update: Das W3C hat auch einen Artikel über PHP-Sessions und Ampersands veröffentlicht.
RT @dertimbo PHP-Sessions HTML konformPosted in Developing, Tags:ampersand, html, php, session, validation, w3c, webstandards
Possibly Related Entries
Who is this?
freshlabs journal is the bi-lingual weblog and digital playground of Tim Isenheim, designer and webdeveloper from Hamburg, Germany. More →





One Response to “PHP-Sessions HTML konform”
Who's linking?