Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Logout alla chiusura del browser
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • A
      andrearufo User Attivo • ultima modifica di

      Credo che se usi i cookie sia difficile, questi, a meno di cancellarli appositamente rimangono registrati nel computer dell'utente. Puoi eventualmente fare in modo che il cookie duri quel poco di tempo che basta a stare sul sito e quindi scada.

      Altrimenti, e credo che sia cio che fa per te, puoi usare le sessioni: si registra una sessione e si e loggati solo il tempo che si sta sul sito, altrimenti la sessione scade o si chiude all'uscita.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • I
        infosicurezza User Attivo • ultima modifica di

        @andrearufo said:

        Altrimenti, e credo che sia cio che fa per te, puoi usare le sessioni: si registra una sessione e si e loggati solo il tempo che si sta sul sito, altrimenti la sessione scade o si chiude all'uscita.

        Si le sessioni gia le utilizzo.
        Il problema rimane comunque perchè :
        Ho strutturato il sito in modo che ad ogni login che l'utente effettua viene modificato un campo della tabella chiamato in_linea e mi imposta lo stato online dell'utente ( in questo modo conosco quante persone sono collegate al mio sito in quel momento ), come lo imposta offline nel momento in cui l'utente effettua il logout.

        Il problema sta proprio nel modificare la tabella quando l'utente chiude la pagina senza effettuare il logout.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • A
          andrearufo User Attivo • ultima modifica di

          Essendo un linguaggio server side e eseguendosi solamente quando un utente richiama la pagina specifica, per restituire il risultato della computazione, non credo sia strutturalmente possibile.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • I
            infosicurezza User Attivo • ultima modifica di

            e allora come potrei fare per risolvere il problema degli utenti online ?
            Un metodo c'è di sicuro, altrimenti anche sui social network come facciamo a ditinguere gli utenti in linea da quelli non in linea ?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • A
              andrearufo User Attivo • ultima modifica di

              Sicuramente il modo c'e` e probabilmente si potrebbe eseguire in javascript ma non saprei dirti come di preciso...

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • I
                infosicurezza User Attivo • ultima modifica di

                E' una parte del sito più complicata questa.
                Ancora devo vedere una soluzione.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Ciao infosicurezza,
                  è un argomento che ho già affrontato diverse volte nel forum, la soluzione che adotto io è la seguente:

                  • Ogni volta che l'utente apre una pagina aggiorno un campo della tabella con il timestamp corrente

                  Trascorsi X minuti li puoi già considerare offline.
                  Soluzioni in ajax per sapere in quale preciso secondo chiudono il browser sono sicuramente dispendiose in termini di risorse del server, e piuttosto inutili a mio avviso.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • I
                    infosicurezza User Attivo • ultima modifica di

                    @Thedarkita said:

                    Ciao infosicurezza,

                    • Ogni volta che l'utente apre una pagina aggiorno un campo della tabella con il timestamp corrente

                    Trascorsi X minuti li puoi già considerare offline.
                    .
                    Aggiorni il campo della tabella relativo ad un unico utente.
                    Se l'utente rimane sul sito per 10 minuti senza cambiare pagina, si presuppone che ha abbandonato il sito giusto ? come fai ad effettuare una modifica alla tabella se quell'utente ormai non è più collegato?

                    questo non riesco capire

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Non è necessario sai che l'utente X ha visto l'ultima pagina alle 16:05 adesso sono le 17:00 sai che sono passati X minuti quindi è offline.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • A
                        andrearufo User Attivo • ultima modifica di

                        Quindi sommare gli utenti che hanno il timestamp al massimo entro 10 minuti da ora darebbe una indicazione (non esattamente) precisa delle utente online in quel momento.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Si, è anche quello che fanno tutti i forum ad esempio.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • I
                            infosicurezza User Attivo • ultima modifica di

                            Potreste farmi un esempio di codice ?
                            io non capisco il senso se effettuo l'aggiornamento su un utente specifico perchè uso le sessioni.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • T
                              thedarkita ModSenior • ultima modifica di

                              Dovresti memorizzare il timestamp dell'ultima pagina visita nel database ovviamente.

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • I
                                infosicurezza User Attivo • ultima modifica di

                                @Thedarkita said:

                                Dovresti memorizzare il timestamp dell'ultima pagina visita nel database ovviamente.

                                Di uno specifico utente però giusto ?

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  thedarkita ModSenior • ultima modifica di

                                  Si ogni volta aggiorni quello dell'utente loggato.

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • L
                                    longo8 User • ultima modifica di

                                    il funzionamento è semplicissimo proprio come ha spiegato Thedarkita. C'è una guida al link: [mtxweb.ch/php_learn/?p=396] di Maurizio Tacchini che utilizza la programmazione orientata agli oggetti (OOP) per eseguire il tutto, è molto più comodo visto che il codice lo dovresti implementare in ogni pagina del tuo sito. La guida si basa però sulla classe che permette all'utente di iscriversi al sito spiegata in un'altra sezione dello stesso autore. Credo che l'iscrizione tu l'abbia già fatta, quindi ti consiglio di prendere spunto dalle funzioni ben spiegate e fare un nuovo oggetto.

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • I
                                      infosicurezza User Attivo • ultima modifica di

                                      @Longo8 said:

                                      il funzionamento è semplicissimo proprio come ha spiegato Thedarkita. C'è una guida al link: [mtxweb.ch/php_learn/?p=396] di Maurizio Tacchini che utilizza la programmazione orientata agli oggetti (OOP) per eseguire il tutto, è molto più comodo visto che il codice lo dovresti implementare in ogni pagina del tuo sito. La guida si basa però sulla classe che permette all'utente di iscriversi al sito spiegata in un'altra sezione dello stesso autore. Credo che l'iscrizione tu l'abbia già fatta, quindi ti consiglio di prendere spunto dalle funzioni ben spiegate e fare un nuovo oggetto.

                                      Così dovrei imparare qualcosa della programmazione ad oggetti.. e non credo di aver tempo

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • L
                                        longo8 User • ultima modifica di

                                        ciao,
                                        allora ti basta fare una pagina a parte in cui inserirai le due query:

                                        1. aggiorna il timestamp dell'utente che sta navigando;
                                        2. inserisce UTENTE USCITO nel campo degli utenti il cui timestamp supera i (tot) minuti scelti da te.

                                        online.php
                                        [PHP]
                                        //1)
                                        $time = time();
                                        $sql = "UPDATE utenti_online SET ora=$time WHERE id_utente='$_SESSION[id]'";
                                        //esegui query

                                        //2)
                                        $sec= 300; /* 300/60=5 l'utente verrà ritenuto online se non aggiorna una pagina per almeno 5 min
                                        Inserisci quanti minuti vuoi esprimendoli in secondi */
                                        $sql = "DELETE FROM utenti_online WHERE ora+$sec<$time";
                                        //esegui query
                                        [/PHP]

                                        N.B. La pagina online.php deve essere inclusa in tutte le pagine del tuo sito.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        Caricamento altri post
                                        Rispondi
                                        • Topic risposta
                                        Effettua l'accesso per rispondere
                                        • Da Vecchi a Nuovi
                                        • Da Nuovi a Vecchi
                                        • Più Voti