
Man meint, dass WordPress die Nutzung von Sessions nicht unterstützt; immer wieder kommt es zu Fehlern, wenn man wie in PHP bekannt, einfach diverse Sessions initialisiert und nicht selten sucht man sich irre nach dem Problem.
Aber manchmal ist es leichter als es ausschaut, denn man kann einfach via Funktion die Session initialisieren. Achte darauf, dass die Initialisierung möglichst am Anfang der Datei ist.
<?php
if ( !session_id() )
session_start();
Ich nutze öfter noch eine kleine Erweitung und habe daher eine eigene Funktion dafür.
<?php
if ( !session_id() )
my_start_session();
function my_start_session() {
@session_cache_limiter('private, must-revalidate'); //private_no_expire
@session_cache_expire(0);
@session_start();
}
Danke für den Hinweis. Das hat mir sehr geholfen.
Das gilt aber nicht mehr für die 3.1 Version, oder?
Hatte mir da ein kleines Plugin gebastelt - unter der 3.05 lief es problemlos aber mit der 3.1 bekomme ich Fehlermeldungen (Warning: Cannot modify header information - headers already sent by (output started at xxxxxx/themes/twentyten/header.php:12) ).
Torsten
WordPress zerstört Globale Variablen, darunter auch Session Inhalte. Dies pasiert vor der Template initialiesierung. Wenn ihr diesen Code:
function my_init_session()
{
session_start();
}
add_action('init', 'my_init_session', 1);
in die functions.php setzt, wird die Session gestartet nachdem WordPress sie zerstören würde und bevor das Template "erstellt" wird.
(Die 1 legt die Priorität hoch)
MfG Dude
P.S. in die functions.php eures Templates. Nicht die vom WordPress Core