buona notte,
sto scrivendo una semplice classe per gestire le sessioni,
ho scritto
codice:
function sessionStart(){
session_start();
echo "s: ".session_id(). "
";
if (!$this->checkSession()) {
$this->sessionDestroy();
$this->registerVar('session_agent',$this->session_agent);
}
return true;
}
function getId() {
return session_id();
}
Il primo dubbio è .. perchè il session_id con getId non è restituito? Nel sessionStart quando avvio viene stampato correttamente..se poi dal file richiamo il getId mi restituisce stringa vuota, anche se scrivo
codice:
function getId() {
echo "s: ".session_id(). "
";
}
non stampa niente ... tenendo conto che i metodi scritit che accedono alle variabili di sessione funzionano correttamente, perchè non è possibile accedere al session_id? :master:
Anche nel documento in cui includo la classe se dopo aver avviato la sessione all'interno della classe poi provo a richiamare session_id() non visualizza niente!?
Il session_id è locale al file invocante il session_start?
L'inclusione della classe la effettuo mediante il require_once ed è in una sottocartella, potrebbe influire? Però in questo ultimo caso, il require non funziona come l'include e quindi il codice viene riportato localmente al file che effettua l'inclusione?
Un'altra cosa.. quando distruggo la sessione, reinizializzando l'array e chiamando il session_destroy, l'id di sessione lo devo rigenerare o ci pensa automaticamente php? Inoltre il manuale di php dice di reimpostare la vita del cookie, ma nel caso in cui il cookie sia stato generato da php per la propagazione dell'id, non ci dovrebbe pensare automaticamente il session_destroy?
ciao