|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
[php] Logout utente a sessioni terminate
Salve utenti.
Sono nuovo di qui, scrivo questo post perche sono alla creazione di un sito-community da me programmato da zero, ora sono quasi alla sua pubbligazione on-line, manga solo uno script e finalmente dopo tante ricerche ho trovato come farlo, il logout utente quando l' utente non si trova più all' interno del mio sito, per fare ciò pero ho bisongo di fare queste tre cose: 1) settare il tempo attuale nel db associandolo all'utente 2) controllare chi è loggato 3) Se il tempo attuale, il tempo di sessione per ogni utente è maggiore ad esenoui di 3 minuti , mi include ed esegue la pagina logout.php |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 499
|
modifica il titolo e aggiungi [php] all'inizio
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Non si capisce bene cosa tu voglia fare: vuoi che passato un tot di tempo scada la sessione e l' utente debba riloggarsi?
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
No, io vorrei che la sessione terminasse: o quando l' utente effettua il logout ( script gia fatto nel sito ) o quando l' utente non si trova più nel sito.
Io vorrei che se un utente non si trova più nel mio sito automaticamente si eseguono delle operazioni (quelle per il logout e non solo)...come fare? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Cioè intendi un utente che per un tot prestabilito pur essendo loggato non genera attivtà
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
io veramente intendevo un utente che proprio non si trova più nel sito, ma se quella e l' unica soluzione allora si, intendevo quello
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Un utente non si trova piu nel sito quando non è piu loggato.Non conosco il php,ma al pari di altri linguaggi dovrebbe consentirti di raggiungere in tuo intento attraverso la sessione
|
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
ok, allora per quello che voglio fare io, voi dite che mi serve uno script che mi sloga un utente che rimane per un pò di tempo inattivo sul sito?
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
La sessione funziona in questo modo:è valida per un tot di tempo prefissato entro il quali l' utente invia 2 richieste al server,in quanto il protocollo Http è senza stato.Se l' utente non rispetta il timeout ovvero invia 2 richieste in un tempo superiore al timeout la sua sessione scade e in caso di sito protetto dovrà ripetere il login
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
ok, ma come si fa ad impostare il timeaut delle sessioni?
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
session_set_cookie_params();
la funzione dovrebbe essere questa e dovrebbe accettare il tempo in secondi,ma ti ripeto non utilizzo il php per cui non so cn precisione |
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
Codice PHP:
che per caso questa funzione termina le sessioni alla chiusura del browser quando il tempo in segondi non viene specificato in essa? |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Quella è una funzione di php,se non la utilizzi il server prenderà come valore di default per la sessione quello impostato nel file php.ini.
Non ho ben capito la tua domanda ma cerco di interpretarla: La sessione non è nulla di fisico ma un collegamento "astratto" che sopperisce alla mancanza dello stato nel protocollo Http.In sostanza è un numero univoco che identifica il browser:se mi presento ad un sito con una sessione o meglio un Idsession scaduto sarà aperta una nuova sessione,cosi come ne sarà aperta un' altra se non ho nel browser o sull' URL un IDsession. Alla chiusura del browser la sessione non è piu valida per cui di fatto si entra in stato di log-out Ultima modifica di nuovoUtente86 : 24-02-2008 alle 22:51. |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No, la funzione per settare il timeout della sessione è session_cache_expire...questa fa scadere la sessione dopo tot minuti indipendentemente dalla durata del cookie di sessione e dalla modalità di propagazione dell'id di sessione.
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
In php non c'è un modo "diretto" per eseguire un qualche codice alla scadenza di una sessione (purtroppo aggiungo)... |
|
|
|
|
|
|
#16 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
E quindi come potro fare per far eseguire un codice quando la sessione è scaduta?...non so, magari un comando anche quando nessuno esegue lo script!
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Quote:
Un domanda: cosi di sfuggita ho letto i valori di default per le sessioni in PHP e ho trovato spesso il valore 20 minuti e in un tutorial 24,ora tu mi dai un terzo valore 15.Varia per caso in base alla versione? |
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ci sta anche che mi sbagli
Basta scaricare e vedere il php.ini di default Simone19: spiegami cosa vuoi fare quando la sessione è scaduta. Devi lavorare in ogni caso loggando l'ultima operazione fatta dall'utente sul database. |
|
|
|
|
|
#19 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
Allore, nella mia tabella utente o un cambo chiamato Stato(che rapresenta lo stato dell' utente: 1 = online ; 0 = offline) di tipo decimal che ammete solo due valori 0,1 e che a come predefinito il valore 0 questo valore mi deve cambiare da 1 (quando l' utente e loggato) a 0 (quando l' utente non è più logato...tutto questo oltre a far scadere le sessione me lo deve fare quando la sessione dell' utente scade o quando viene direttamente chiuso il browser
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non è possibile fare quello che cerchi di fare, l'unico modo è tenere nel database il timestamp dell'ultima operazione fatta dall'utente ed a quel punto determini quali utenti sono online e quali non lo sono facendo una query in base alla differenza fra il timestamp attuale e quello memorizzato nell'ultima azione, che ovviamente deve essere minore o uguale del timeout della sessione di php (in realtà ci metterei qualche secondo in più per sicurezza).
E' la stessa cosa che viene fatta su questo forum per determinare la lista degli utenti online. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:57.




















