Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    non mi funziona logout, perchè?

    ciao non mi funziona il logout, questo è lo script:

    <?
    function logout() {
    session_unset();
    session_destroy();
    header("Location: ../index.php");
    }
    ?>
    e questo è il link per far eseguire il logout:

    sapete dov'è l'errore?

  2. #2
    da cosa vedi che non funziona? hai fatto un print dell'array di sessione?

  3. #3
    Il codice che hai postato è poco per analizzare la situazione. faccio quindi solo delle ipotesi:

    1) il link dovrebbe essere del tipo

    2) all'inizio della pagina index devi scrivere

    Codice PHP:
    if (isset($_GET['action']) && $_GET['action']=='logout') {
        
    logout();

    3) nella funzione logout, se usi le sessioni per la validazione e se usi $_SESSION, al posto di

    Codice PHP:
    session_unset(); 
    userei piuttosto

    Codice PHP:
    unset($_SESSION['nomevariabilecheusi']); 

  4. #4
    Codice PHP:
    <?php
    function logout() {

         
    session_start();
         
    session_destroy();
         
    $_SESSION = array();

         
    header("Location: ../index.php");
    }
    ?>
    Se il browser non viene chiuso la sessione viene ripristinata con lo stesso session_id, ma il file di sessione sara' vuoto.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ho provato così però non mi funziona:

    <?
    if (isset($_GET['action']) && $_GET['action']=='logout') {
    logout();
    }
    function logout() {
    unset($_SESSION['logout']);
    session_destroy();
    header("Location: index.php");
    }
    ?>
    dove sbaglio?

  6. #6
    Originariamente inviato da prinzart
    ho provato così però non mi funziona:

    dove sbaglio?
    a non leggere tutte le risposte.

    non metti session_start() e non sei membro della sessione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Giusto... session_start()!

    Non è poi che quella che vedi è solo la copia cache della pagina?

  8. #8
    Anzi no, mi correggo, la sessione potrebbe servirgli per altre cose oltre all'autenticazione, quindi perchè fargliela togliere!

    E' anche vero però che se fosse come dico io, dovrebbe mettere session_start() all'inizio della pagina e non dentro la funzione logout()

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    scusa piero non avevo visto la tua risposta

    comunque ho mischiato i vostri 2 script e ora funziona, non so se ho fatto un papocchio, cos'è che posso cancellare?

    <?
    if (isset($_GET['action']) && $_GET['action']=='logout') {
    logout();
    }
    function logout() {
    session_start();
    unset($_SESSION['logout']);
    session_destroy();
    $_SESSION = array();
    header("Location: index.php");
    }
    ?>

  10. #10
    unset($_SESSION['logout']);

    questo non serve... poco dopo macelli tutto con:

    $_SESSION = array();

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.