„use_trans_sid“ in PHP abstellen

Siehe dazu auch: http://www.mtdev.com/2002/06/why-you-should-disable-phps-session-use_trans_sid

Wenn jemand eine Seite in meinem Wiki über einen externen Link aufgerufen hat, wie z.B. Mini-HOWTO für OpenVPN mit FLI4L, wurden sämtliche Links auf der Seite mit dem zusätzlichen Parameter „DokuWiki“, gefolgt von einer längeren Zahlen-/Buchstabenkombination versehen. Damals ging ich davon aus, dass es sich hier um eine Eigenschaft von DokuWiki handelt – bis ich mir den Code von DokuWiki genauer angesehen habe.

DokuWiki erzeugt eine PHP-Session mit session_start(). Normalerweise wird ein Cookie mit dem Namen „PHPSESSID“ gesetzt, dass die erzeugte Session-ID enthält. Nun – DokuWiki ändert auch den Namen der Session auf „DokuWiki“, so dass die Session-ID nicht in „PHPSESSID“, sondern eben „DokuWiki“ gespeichert wird.

Es kann passieren, dass PHP davon ausgeht, dass keine Cookies übermittelt werden können und fügt die Session-ID als zusätzlichen Parameter in Links und als unsichtbares Feld in Formularen auf einer Seite hinzu – was eine Reihe von Problemen verursachen kann. Dies kann durch die Konfigurationseinstellung „use_trans_sid“ gesteuert werden.

In einem Fall konnte ich einen zusätzlichen Abschnitt in der Datei .htaccess verwenden, die ohnehin verwendet wurde, um „schöne“ URLs mit DokuWiki zu ermöglichen:

<IfModule mod_php4.c>
php_value session.use_trans_sid 0
</IfModule>