Visualizzazione dei risultati da 1 a 7 su 7

Discussione: problemi logout

  1. #1

    problemi logout

    Ciao a tutti,

    sto provando a fare un sito dove l'utente può accedere con i cookie(per il lungo termine) o con usa sessione. Quindi ho creato un link per il logout che rimanda alla seguente pagina:

    Codice PHP:
    <?php
    session_start
    (); //start session
    echo $_COOKIE['user_name'];

    //destroy session
    session_destroy();

    //unset cookies
    setcookie("user_name"""time()-3600);

    echo 
    $_COOKIE['user_name'];
    ?>
    I due echo sono stati messi solo per la fase di verifica e mi aspetterei quindi che il primo stampasse il nome dell'utente, il secondo invece non facesse niente perché il cookie dovrebbe essere stato cancellato.
    Invece no, mi stampa 2 volte il nome utente e se provo ad accede al sito risulto ancora loggato...
    Sapete dirmi cosa sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Quote Originariamente inviata da morfeus80 Visualizza il messaggio
    Ciao a tutti,

    sto provando a fare un sito dove l'utente può accedere con i cookie(per il lungo termine) o con usa sessione. Quindi ho creato un link per il logout che rimanda alla seguente pagina:

    Codice PHP:
    <?php
    session_start
    (); //start session
    echo $_COOKIE['user_name'];

    //destroy session
    session_destroy();

    //unset cookies
    setcookie("user_name"""time()-3600);

    echo 
    $_COOKIE['user_name'];
    ?>
    I due echo sono stati messi solo per la fase di verifica e mi aspetterei quindi che il primo stampasse il nome dell'utente, il secondo invece non facesse niente perché il cookie dovrebbe essere stato cancellato.
    Invece no, mi stampa 2 volte il nome utente e se provo ad accede al sito risulto ancora loggato...
    Sapete dirmi cosa sbaglio?
    Non puoi fare un setcookie dopo aver stampato qualcosa a video, tutto qui.
    Un nuovo cms/framework... vuoi collaborare al progetto?

  3. #3
    A dire il vero I due echo li ho messi in un secondo momento quando mi sembrava non distruggessi il cookie, comunque adesso ho riprovato cancellando il primo echo, ma comunque non funziona...

  4. #4
    Invece il comportamente è corretto.
    Da manuale:

    codice:
    Once the cookies have been set, they can be accessed on the next page load

    per cui la modifica è effettiva solamente dalla pagina successiva.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Grazie, non avevo letto bene il manuale.
    Comunque ho modificato il codice in questo modo:
    Codice PHP:
    <?phpsession_start(); //start session
    //destroy session
    session_destroy();

    //unset cookies
    setcookie("user_name"""time()-3600);

    header ("Location: ../page.php");?>
    E ho quindi usato la pagina page.php come verifica con questo codice:

    Codice PHP:
    <?php
        session_start
    ();    
        if(!isset(
    $_SESSION['user_name']) && !isset($_COOKIE['user_name'])){         
        
    header("Location: index.php");    
        } 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <div class="success">Welcome session, <?php echo $_SESSION['user_name'?></div>
    <div class="success">Welcome cookie, <?php echo $_COOKIE['user_name'?></div>
    <div><a href="scripts/logout.php">LOG OUT</a></div>
    </body>
    </html>
    Mi sarei quindi aspettato di essere reindirizzato alla pagina index.php, invece ottengo una pagina con questo testo:

    Welcome session,
    Welcome cookie, mattia1
    LOG OUT

    Quindi il cookie con username mattia1 è ancora valido.
    Come mai???

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    prova a settare tutti i 6 parametri del setcookie, cancella i cookie manualmente e riprova...
    Un nuovo cms/framework... vuoi collaborare al progetto?

  7. #7
    Ciao,
    ho provato di tutto e non riuscivo a fare il logout, alla fine ho trovato il problema: il file con il codice per il logout era in una cartella, è stato sufficiente spostarlo nella mainroot del sito e adesso funziona!
    Sapreste spiegarmi il motivo?

    Ciao.

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.