Il problema in questione risiede nell'archiviazione ("storage") della sessione.
Nell'esempio riportato da un utente nel BUG Track di PHP.net
codice:
1: session_set_save_handler (...)
2: session_start ()
3: session_destroy ()
4: session_start()
qui si riapre una sessione (4) dopo ch'è stata rimossa (3), previa inizializzazione della funzione di gestione delle stesse sessioni (1).
Premo a precisare che non sono un Esperto.
http://cvs.php.net/co.php/php-src/ex...c?r=1.336.2.50
codice:
/* Open session handler first */
if (PS(mod)->s_open(&PS(mod_data), PS(save_path), PS(session_name) TSRMLS_CC) == FAILURE) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Failed to initialize storage module: %s (path: %s)", PS(mod)->s_name, PS(save_path));
return;
}
andando alla riga 639, si trova il codice gestisce proprio questo errore.
Il problema, probabilmente è causato dalla perdita del SID (PHPSESSID), che da anche il nome alla sessione.
Dato che il SID, quando non viene passato tramite le variabili di POST o GET, viaggia (probabilmente) con le variabili GLOBALI, che a loro volta se la chiave del php.ini o del .htaccess è impostata ad off (register_global = off | php_flag register_globals off), queste non vengono inizializzate, e quindi potrebbe verificarsi questo errore.