Gloss & Stripes

About Programming, Mac, Design and Everything that's somehow Arty or Open Source.

PHP-Sessions HTML konform [de]

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...

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:

PHP:
  1. // Argument-Seperatorzeichen global festlegen:
  2. ini_set('arg_seperator.output', "&");

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.

PHP:
  1. // transparente Session ID ausschalten:
  2. ini_set('session.use_trans_sid', false);

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.

PHP:
  1. // HTML-Tags festlegen, die eine SID erhalten:
  2. ini_set("url_rewriter.tags","");

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 konform

Posted in Developing, Tags:, , , , , ,

Possibly Related Entries

One Response to “PHP-Sessions HTML konform”

Post a comment or review the article

+ -

Who is this?

freshlabs journal is the bi-lingual weblog and digital playground of Tim Isenheim, designer and webdeveloper from Hamburg, Germany. More →

  • Download Summersun, a sunny theme for WordPress
  • Download WP SIMILE Timeline, a lifestream plugin for WordPress

Topics

Archives

Tag Cosmos

3D ajax Apple blogging browser comedy comments contest copenhagen css Design dom firefox flash fuckedup gallery google html interface javascript music mythbusters offline opensource osx photo photoshop php plugin powerbook programming projects psp skype Software spam studyabroad switch video w3c wallpaper webdesign webstandards westciv Wordpress

Full Tag Cloud