Una soluzione che viene spesso utilizzato, in questa situazione, è quello di:
- avere una non troppo lunga durata della sessione: scadrà se l'utente non è attivo (che è solo il modo in cui funziona - e che è meglio per il vostro server se hai un sacco di utenti)
- quando l'utente si collega, si imposta un cookie che contiene ciò che è necessario per lui di essere riconosciuto
- se torna sul sito (con il cookie, e senza avere una sessione attiva), usi le informazioni contenute in quel cookie per autenticarlo, ricreando la sessione nello stesso momento.
questo modo:
- non si dispone di migliaia di sessioni di "attivi" con nessuna buona ragione
- si tengono le sessioni standard di modo di lavorare
e si ha la vantaggio di "non essere mai uscito fuori", almeno dal punto di vista dell'utente.
Si noti inoltre che con le sessioni "normali", il cookie contenente l'ID di sessione verrà eliminato quando l'utente chiude il browser, quindi verrà disconnesso, indipendentemente dalla durata della sessione.
Con la soluzione che propongo, tu sei colui che imposta per quanto tempo il cookie deve rimanere sul computer dell'utente ;-)
Significa, però, che quando un utente accede-out manualmente, avete per cancellare sia la sua sessione che il cookie, ovviamente - così non viene immediatamente re-auto-registrato.
Naturalmente, bisogna stare attenti a ciò che si imposta nel cookie: un cookie non è abbastanza sicuro, in modo da non memorizzare la password in esso, per esempio ;-)
In realtà, questo modo di fare le cose è come funziona spesso la funzione "ricordami"; eccetto, qui, i tuoi utenti non dovranno controllare una casella per attivare "ricordami" ;-)
Se non hai il tempo di sviluppare quel tipo di roba, un modo piuttosto veloce e sporco è per utilizzare una richiesta Ajax su tutte le tue pagine, che semplicemente "ping" una pagina PHP sul server - questo manterrà la sessione attiva (ma non è un buon modo di fare le cose: avrai ancora un sacco di sessioni sul server, avrai molte richieste inutili ... e funzionerà solo finché l'utente non chiude il browser).
fonte
2009-08-25 10:28:21
ho impostato un cookie con il nome utente e un numero casuale concatenato ad esso e poi l'ho immagazzinato nel database Quando viene chiamata una pagina, controllo il cookie di sistema e lo abbino a quello nel database se entrambe le corrispondenze visualizzano la persona che ha effettuato il login altrimenti no. E quando una persona si disconnette, imposto il cookie su null. È questa la strada giusta ??? ed è sicuro ??? – developer
Sembra OK per me, almeno - non sarà mai "perfetta sicurezza", come chiunque usa il computer del ragazzo verrà registrato automaticamente, ma dovrebbe essere sufficiente, suppongo :-) –
ya capisco la sicurezza problema. Bene grazie Martin :-) – developer