Originariamente inviato da Rank-1
Ciao a tutti
sto usando codeigniter da una settimana e mi servirebbe una spiegazione riguardo le sessioni..
faccio un esempio cosi si capisce meglio
pagina che esegue il login (semplificata)..
Codice PHP:
if(login())
{
$this->load->library('session'); (salva nel db session_id, ip_address, user_agent, last_activity)
$this->session->set_userdata('user_id', $this->id); (l'id mi serve per impostare la paginaprotetta in base all'user..)
redirect('paginaprotetta');
}
paginaprotetta
come faccio a capire se l'user è loggato?
all'inizio pensavo che dovevo controllare la session_id del cookie con quella nel db..
esempio: $this->db->where('session_id', $this->session->userdata('session_id'))
però per usare la funzione userdata devo prima caricare la libreria $this->load->library('session') che mi crea una nuova sessione nel db..
poi ho notato che le session_id nel db cambiano spesso ma non cancellano quelle vecchie, nel manuale c'è scritto: The Session class has built-in garbage collection which clears out expired sessions so you do not need to write your own routine to do it.
infine mi chiedevo se era sicuro lasciare l'user_id nel cookie della sessione, magari modificando quest'ultimo dal cookie si riusciva a loggare con altri utenti però non ci ho ragionato molto..è solo un ipotesi..prima vorrei capire come funzionano