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. Problema sessioni utenti
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • R
      ryu66 User • ultima modifica di

      Problema sessioni utenti

      Salve a tuttiii :gthi:, ho un problema con la sessione degli utenti , vorrei che quando un'utente chiude il browser si cancella automaticamente dagli utenti collegati senza però cancellare la cookie. come potrei fare????

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • S
        sups User Attivo • ultima modifica di

        Con una funzione JS potresti creare un collegamento ad una pagina web che esegua l'operazione di logout dell'utente.

        [HTML]
        <body onunload="window.location = 'logout.php';">
        [/HTML]

        Ciao!

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • R
          ryu66 User • ultima modifica di

          a me non serve il logout, vorrei solo che quando uno non visualizza il sito non viene inserito nella lista degli utenti sotto al sito..

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • S
            sups User Attivo • ultima modifica di

            Il logout non è obbligatorio terminare la sessione, puoi anche implementare una variabile di sessione che indica la presenza sul sito web dell'utente.
            Il compito della pagina richiamata da "onunload" è quello di azzerare questa variabile.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • R
              ryu66 User • ultima modifica di

              e come si fa a settare questa variabile chiudendo solamente il browser???

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • D
                digital.daigor User Attivo • ultima modifica di

                il sistema è più o meno questo:

                una pagina che fai girare ogni TOT, che modifica gli user collegati, aggiornando il timestamp nel DB, e cancella quelli fuori dal timeout.

                esempio:

                [PHP]
                $timeout = time()-60;//Timeout di 1 minuto

                $query = "UPDATE utenti_collegati SET timeout='".time()."' WHERE id=1";
                mysql_query($query);

                $query = "DELETE FROM utenti_collegati WHERE timeout < '".$timeout."''";
                mysql_query($query);

                $query = "SELECT * FROM utenti_collegati";
                $rsq = mysql_query($query);
                while($rwq = mysql_fetch_assoc($rsq))
                {
                echo $rwq['user];
                }

                [/PHP]

                l'ho fatta al volo, ma più o meno è così!

                fammi sapere!

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • R
                  ryu66 User • ultima modifica di

                  si ma in questo modo non mi cancellerebbe anche quegli che hanno la pagina aperta per più di un minuto senza aggiornare???

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • D
                    digital.daigor User Attivo • ultima modifica di

                    se fai un ajax o un iframe, fai aggiornare ogni TOT secondi!

                    con ajax, magari usando jquery, ti viene molto facile, e fai una chiamata al DB ogni utente, il ke, con molti utenti contemporaneamente, può essere una rottura, ma se il timeout va ogni 5 minuti....i danni collaterali diminuiscono!

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • R
                      ryu66 User • ultima modifica di

                      ho un pò modificato il tuo codice

                      [PHP]
                      $timeout = time() -60; //Timeout di 1 minuto

                      $query_timeout = "UPDATE sessioni SET timeout='".time()."' WHERE id='".$_COOKIE["sessioni"]."'";
                      $result_timeout = mysql_query($query_timeout) OR DIE (mysql_error());

                      $query_timeout_set = "UPDATE sessioni SET online='0' WHERE timeout < '".$timeout."''";
                      $result_timeout_set = mysql_query($query_timeout_set) OR DIE (mysql_error());
                      [/PHP]

                      non so il perchè quando lo carico mi da questo errore:

                      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1212142592''' at line 1

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • D
                        digital.daigor User Attivo • ultima modifica di

                        < '".$timeout."''"

                        doppia chiusura apice....sorry!

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • R
                          ryu66 User • ultima modifica di

                          ora va , però c'è un'altro problema appena mi connetto mi setta direttamente online = '0' senza aspettare 1 minuto

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • D
                            digital.daigor User Attivo • ultima modifica di

                            in che senso?

                            ti connetti, hai il cookie attivo e ti setta sempre a 0???

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • R
                              ryu66 User • ultima modifica di

                              si , setta il timeout anche

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • D
                                digital.daigor User Attivo • ultima modifica di

                                time() +60

                                prova così!

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • R
                                  ryu66 User • ultima modifica di

                                  uguale

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • D
                                    digital.daigor User Attivo • ultima modifica di

                                    mi raccomando......il timeout, dovrebbe essere il doppio del tempo di chiamata della pagina con ajax o iframe....

                                    es:

                                    ajax: timeout 1 minuto
                                    php: timeou 2 min

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • R
                                      ryu66 User • ultima modifica di

                                      ho provato qualsiasi variazione di tempo, appena mi connetto mi da direttamente il set a 0

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • D
                                        digital.daigor User Attivo • ultima modifica di

                                        fai l'echo di tutte le query, e postale

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • R
                                          ryu66 User • ultima modifica di

                                          1
                                          [PHP] UPDATE sessioni SET timeout= '1212147255' WHERE id='14'[/PHP]

                                          2

                                          [PHP] UPDATE sessioni SET online= '0' WHERE timeout < '1212147043'[/PHP]

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • D
                                            digital.daigor User Attivo • ultima modifica di

                                            caspita......non avevo calcolato la variabile online.....

                                            nella query prima, setta anche quella!!!

                                            UPDATE sessioni SET timeout= '1212147255', online = '1' WHERE id='14'

                                            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