ciao a tutti, un quesito su un argomento i cui meccanismi a volte mi sfuggono: le sessioni.
Qual è esattamente il funzionamento di session_regenerate_id()?
----
RETTIFICO IL POST (leggere sotto): in realtà non funziona affatto: se utilizzo questa funzione le variabili di sessione non vengono salvate. Utilizzo i cookies di sessione e le funzioni OB_*
----
Lo chiedo perchè ho provato ad inserirlo in uno script come ulteriore sicurezza, utilizzando questo codice reperito online:
In sostanza ad ogni pagina dovrebbe rigenerarsi l'ID rimanendo intatti i dati.Codice PHP:
if (!isset($_SESSION['SERVER_GENERATED_SID'])) {
session_destroy(); // destroy all data in session
}
session_regenerate_id(); // generate a new session identifier
$_SESSION['SERVER_GENERATED_SID'] = true;
Il codice ovviamente funziona nelle transizioni da una pagina e l'altra tramite links, ma utilizzandolo in un contesto dove al submit di un form Post vengono processati i dati e subito reindirizzato l'utente tramite un Header Location, pur utilizzando il comando session_write_close() ho notato che le modifiche alla sessione non vengono affatto salvate se si rigenera l'ID (che in realtà è rigenerato 2 volte prima della nuova pagina mostrata all'utente); mentre il funzionamento è ok, se anche dopo il redirect mantengo lo stesso ID.
E' un comportamento voluto o qualcosa mi sfugge?
Grazie.
ciao,
jack.