Ciao a tutti, dopo un periodo di vacanza eccomi qui ad impazzire con yii.
Sto migrando un progetto su yii e abbiamo deciso di costruire le evoluzioni in yii e nel tempo libero convertire il vecchio lavoro su yii.
CI stiamo scontrando con un problema insolito, davvero strano, che ha a che fare con le sessioni.
Ci sono 2 pagine php
A -> sviluppata in php classico senza framework
B -> sviluppata in php con framework
A memorizza in sessione dei dati
e presenta un link alla pagina B
Nel link viene passato anche il parametro si = session_id() in modo che la pagina B possa rileggere tali valori.
Quando si clicca sul link, viene richiamata la pagina B che riprende i dati di sessione e visualizza dei dati.
A volte funziona a volte no.
A volte la sessione della pagina B, contiene i dati della pagina A, a volte è completamente vuota.
Addirittura, quando B contiene i dati, se faccio il refresh della pagina, dopo solo pochi secondi, non li contiene più.
Quindi ci dev’essere da qualche parte qualcosa che cancelli i dati e
presumo sia qualcosa che abbia a che fare con la scadenza della sessione.
Ma come se non bastasse, guardate questo spezzone di codice della pagina B:
public function actionEsportaDettaglioInd1($si) {
echo " s ".session_id();
$_SESSION['PROVA']="p";
if(session_id()!=$si){
session_id($si);
session_set_cookie_params(60*10);
session_start();
echo " b ".session_id();
}
die(" - ".print_r($_SESSION,true));
}
Questo è il risultato:
[color="#222222"][font="arial, sans-serif"][size="2"]
s 8d3b8a5bbeda6134070bec9c0dee1c1e b 20427792f7b949d37945529ef49639fc - Array
(
[PROVA] => p
)[/size][/font][/color]
[color="#222222"][font="arial, sans-serif"][size="2"]dove si vede che session_id del framework valeva [/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]8d3b8a5bbe[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]da6134070b[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]ec9c0dee1c[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]1e [/size][/font][/color]
[color="#222222"][font=“arial, sans-serif”][size=“2”]quindi passa nell’if che imposta il session_id della pagina precedente, ed infatti stampa[/size][/font][/color]
[color="#222222"][font="arial, sans-serif"][size="2"]b 20427792f7[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]b949d37945[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]529ef49639[/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]fc[/size][/font][/color]
[color="#222222"][font="arial, sans-serif"] [/font][/color]
[color="#222222"][font=“arial, sans-serif”][size=“2”]ma [/size][/font][/color]$_SESSION[‘PROVA’] è ancora valorizzato coi dati della session id precedente!!!
E allora non ci capisco più nulla e chiedo aiuto a qualcuno che possa illuminarmi.