Visualizzazione risultati 1 fino 12 di 12

Discussione: session destroy (elenco presenti)

  1. #1
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Unhappy session destroy (elenco presenti)

    Ciao ragazzi!

    Sto ultimando un MMORPG in PHP. Sono riuscito a fare tutto tranne una delle cose più importanti: un elenco dei presenti in gioco.

    Sono riuscito a fare che entrando, se l'user e la pass sono corretti, il nome di colui che ha effettuato il login entra nella lista dei presenti, ma non so come uscirne. Vorrei fare in modo che quando esco (quando faccio il logout non è difficile cancellare il nome dalla lista dei presenti) CHIUDENDO DIRETTAMENTE IL BROWSER (quindi senza fare il logout, ma chiudendo cmq il gioco) il nome si cancelli dalla lista dei presenti.

    Non riesco proprio a capire come fare...GRAZIE PER LA COLLABORAZIONE!!!
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti inserire la data nella lista dei presenti e aggiornarla ogni volta che l'utente visita la pagina. Per verificare se l'utente è online potresti verificare se la data attuale meno qualche minuto è maggiore o uguale di quella dell'utente.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    si ad essere sincero ci ho pensato: ma non ho capito, se il brower è chiuso e quindi lo script in php non gira sul server, come fa la pagina a controllare la sfasatura di tempo?
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Quando qualcuno carica la pagina che visualizza la lista, non vedrà gli utenti che hanno la data e l'ora troppo lontana.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    quindi in soldoni sarebbe una pagina che si autoinvia un form contenente il datetime dell'ultimo movimento?

    Perchè se è così non conosco l'html necessario ne tantomeno il js...
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Per fare una cosa del genere devi utilizzare il PHP e inserire in ogni pagina lo script che aggiorna nel database il datetime attuale.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    si è vero, quindi sotto il controlscriptlogin.php (che controlla la sessione) includo questo file? (per il controllo se è presente o meno)

    Codice PHP:
    <?
    //SELEZIONE TABELLA DAL DB

    $MySql = 'SELECT'...

    if (
    $DataPresente < $DataOra) {
    session_unset();
    session_destroy();
    }

    ?>
    all'incirca....naturalmente $DataOra sarebbe l'ora attuale ma con 1 minuto in meno ($DataPresenti si aggiorna con 1 minuto di ritardo)...

    ...no?
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Perché vuoi distruggere la sessione?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    perchè così (naturalmente oltre ad includere il file exit.php che cancella il nome dalla lista dei presenti) se il giocatore vuole rientrare deve rifare il login dalla pagina index....
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  10. #10
    Guest

    Predefinito

    Non hai capito, in questo modo distrugge la sessione dell'utente che carica la pagina,non dell'utente nella lista!
    mettiamo che tu ad esempio entri nel tuo sito, e c'e uno che si e connesso parecchio tempo fa, la sessione viene distrutta a te...
    e a che ti servirebbe?

  11. #11
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Nell'ultimo messaggio che ha scritto sembra cancelli l'utente dalla lista tramite il file "exit.php" che non ha scritto.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  12. #12
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    EDIT:

    Ce l'ho fatta! Ho messo un offset di 2 minuti. Se l'utente non aggiorna la pagina entro 2 minuti (quindi ha chiuso il browser senza il logout) automaticamente cancella la riga dal db.

    Codice PHP:
    $i = date("i");

    $i = $i-2;

    $ADESSO = date("Y-m-d-H-".$i."-s");

    $incognita = $UltimoAggiornamento;

    if (
    $ADESSO != $UltimoAggiornamento) {

    $MySqlxx = "DELETE FROM PresentiGame WHERE UltimoAggiornamento < '".$ADESSO."'";
    $Resultxx = mysql_query($MySqlxx);

    }
    grazie a tutti per i consigli!


    //

    DATO CHE SBALZAVA HO CONVERTITO LA DATE IN TIMESTAMP, TUTTO OK...
    Ultima modifica di Celtenn : 19-07-2007 alle ore 17.11.16
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •