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 ed eliminazione variabili di sessione
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • G
      gustoinrete User • ultima modifica di

      Logout ed eliminazione variabili di sessione

      salve a tutti per proteggere alcune pagine utilizzo in testa alla pagina il seguente codice

      if ( !isset($_SESSION['id']) || !isset($_SESSION['denominazione']) ){
      header("Location: /login.php");
      exit;
      }
      else {
      codice della pagina
      }

      la cosa funziona piuttosto bene...
      ora però volevo fare la pagina logout ho provato a creare una pagina di questo tipo

      <? ob_start();
      $_SESSION=array();
      header("Location: /index.php");
      exit;
      ?>

      e sembra andare perchè in effetti mi fa il redirect alla index della root
      però se poi vado nella barra degli indirizzi e digito il link di una delle pagine che utilizzano il sistema di protezione che vi ho mostrato all'inizio accedo come se fossi loggato come posso sistemare questa pagina di logout ?

      0 Miglior Risposta Ringrazia Cita Rispondi

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

        1° manca il session start, poi non so se il code tuo funzioni, nn l'ho mai provato, cmq io uso sti 2 sotto

        $_SESSION['id'] = "";

        o

        unset( $_SESSION['id']);

        ma + importante manca il session_start();

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • G
          gustoinrete User • ultima modifica di

          esatto 🙂 grazie

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • massimux
            massimux Moderatore • ultima modifica di

            [php]
            // Inizializza la sessione.
            // Se state usando session_name("qualcosa"), non dimenticatevelo adesso!
            session_start();
            // Desetta tutte le variabili di sessione.
            session_unset();
            // Infine , distrugge la sessione.
            session_destroy();
            [/php]

            direi che il manuale spiega bene queste cose 😄

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • O
              obeach User Newbie • ultima modifica di

              perchè a me non funziona il log out?

              Questo il codice:

              <?php
              session_start();
              unset( $_SESSION['id']);// Ho provato anche session_unset()
              unset($_SESSION['login']);
              unset($_SESSION['group']);

              // destroy PHP session
              session_destroy();

              // return to site homepage
              header("Location: index.php");
              ?>

              0 Miglior Risposta Ringrazia Cita Rispondi

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

                unset( $_SESSION['id']);// Ho provato anche session_unset()
                unset($_SESSION['login']);
                unset($_SESSION['group']);

                non servono...

                basta session_destroy();

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • O
                  obeach User Newbie • ultima modifica di

                  non cambia ... non succede niente lo stesso anche se non uso la funzione unset

                  0 Miglior Risposta Ringrazia Cita Rispondi

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

                    deve funzionare per forza....

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • O
                      obeach User Newbie • ultima modifica di

                      invece niente ... dove può essere il problema?

                      Aggiungo anche il codice per avviare la sessione che ho usato :

                      if ($_POST['user'] == $user && $_POST['pass'] == $pass) {
                      session_start();
                      $_SESSION['login'] = "ok";
                      $_SESSION['group'] = $group;
                      $_SESSION['id'] = $id;
                      //echo 'Autorizzato';
                      header("Location: menu.php");
                      }

                      0 Miglior Risposta Ringrazia Cita Rispondi

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

                        fai così.....a me funziona sempre meglio di altro!!!

                        $_SESSION['login'] = "";
                        $_SESSION['group'] = "";
                        $_SESSION['id'] = "";

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • O
                          obeach User Newbie • ultima modifica di

                          @Digital Daigor said:

                          fai così.....a me funziona sempre meglio di altro!!!

                          $_SESSION['login'] = "";
                          $_SESSION['group'] = "";
                          $_SESSION['id'] = "";

                          non va neanche così ... mmmhmmm

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • massimux
                            massimux Moderatore • ultima modifica di

                            nella pagina di logout

                            [php]
                            // Inizializza la sessione.
                            // Se state usando session_name("qualcosa"), non dimenticatevelo adesso!
                            session_start();
                            // Desetta tutte le variabili di sessione.
                            session_unset();
                            // Infine , distrugge la sessione.
                            session_destroy();
                            [/php]

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • O
                              obeach User Newbie • ultima modifica di

                              Metto il codice che ho usato per l'avvio, la valutazione e la chiusura della sessione.
                              Il logout continua a non funzionare ovvero quando clicco sul link alla pagina logout.php mi fa il redirect ma la variabile $_SESSION['login'] continua ad essere valorizzata e non posso neanche cambiare utente a meno di chiudere il browser.

                              questo è il codice per avviare la sessione ...

                              if ($_POST['user'] == $user && $_POST['pass'] == $pass) {
                              session_start();
                              $_SESSION['login'] = "ok";
                              $_SESSION['group'] = $group;
                              $_SESSION['id'] = $id;
                              //echo 'Autorizzato';
                              header("Location: menu.php");
                              }

                              Questo è quello per l'accesso alle pagine riservate ...

                              if ($_SESSION['login'] != "ok") {
                              header("Location: index.php");
                              }

                              questo è quello per il logout

                              session_start();
                              $_SESSION = array();
                              /* ho provato anche con
                              ho provato anche con:
                              session_unset()
                              unset()

                              e con

                              $_SESSION['login'] = "";
                              $_SESSION['group'] = "";
                              $_SESSION['id'] = "";
                              */

                              session_destroy();

                              // return to site homepage
                              header("Location: index.php");

                              Dopo il log out riesco ad entrare lo stesso nelle pagine riservate.

                              0 Miglior Risposta Ringrazia Cita Rispondi

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

                                nn avevo visto questo:
                                $_SESSION['login']

                                prova a resettarlo!!

                                $_SESSION['login'] = "";

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • O
                                  obeach User Newbie • ultima modifica di

                                  ho provato anche quello.

                                  stamattina ho provato ad installare il progetto in locale e funziona tutto!
                                  Quindi credo che dipenda dalle impostazioni del webserver del mio provider ... ma che configurazione di php influisce sulla scrittura delle variabili di sessione?
                                  Suggerimenti?

                                  0 Miglior Risposta Ringrazia Cita Rispondi

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

                                    può essere influenzato dalle impostazioni sulle variabili....

                                    ad esempio....
                                    se viene passato un valore un get, esempio: ?prova=1

                                    lo puoi richiamare tramite $prova

                                    potrebbe essere quello il problema.....guarda se hai variabili con nome uguale....

                                    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