Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490

    [php]sessione che non si chiude

    Non capisco perchč, se io chiudo una sessione con il codice seguente:
    <?php
    session_start();
    session_unset();
    $_SESSION=array();
    session_destroy();
    header("location:index.html");
    ?>
    che si trova in un file log.php e che chiamo quando clicco su esci, e faccio in dietro con le freccie di navigazione del browser fino a trovare una pagina scaduta solo che aggiornando la paggina ecco che mi ritrovo nel sito bello e loggato.

    Qualcuno puō aiutarmi? dov'č che sbaglio?

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    sei sicuro di essere loggato? oppure vedi una pagina che č in cache?

    comunque non usare nč session_register nč session_destroy, semplicemente avvia la sessione con session_start, e se vuoi svuotarla svuota l'array come hai giā fatto nel codice d'esempio.

    ciao

  3. #3
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490
    non uso session_register e non č una pagina nella cache č strano perchč dopo acer esequito il codice visto sopra ritorno alla paggina di login e da qui se insisto a navigare all'indietro spunta sempre una pagina scaduta che aggiornando si rientra nella sessione chiusa, e non capisco cosa puō essere.

  4. #4
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490
    qualcuno sā darmi una spiegazione?

  5. #5

    anche io T_T

    sono nella stessa identica situazione ... ed č la prima volta che mi succede na cosa simile con le sessioni

  6. #6
    Se non chiudi il browser il cookie di sessione permane sempre lo stesso. Quando con session_start leggi il cookie, php cerca il file corrispondente all'id di sessione ricevuto.

    Poiche' il file e' ancora valido a livello temporale, lo recupera. Ma se hai cancellato i valori di sessione sara' vuoto. Non sara' loggato, ma utilizza lo stesso session_id del precedente. Quello che vedi e' nella cache del browser.
    se vuoi distruggere la sessione fai un file apposito utilizzato da tutti gli script...
    codice:
    pagina_n.php
    <?php
    session_start();
    codice
    
    manda alla pagina logout.php
    
    logout.php
    <?php
    session_start();
    $_SESSION = array();
    session_destroy();
    header("location: login.php");
    exit;
    ?>
    verra' recuperato lo stesso session_id, ma il file sara' vuoto. Se poi hai fatto le cose per bene lo user che sembra loggato e tenta di andare sulle pagine protette verra' invece nuovamente rinviato alla pagina login.php
    codice:
    <?php
    session_start();
    if(empty($_SESSION['check'] )
      header("location: login.php");
    
    and so on...

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

  7. #7
    hum .... il fatto č che il codice di logout (apperte una query che elimina dai presenti l'utente) č identico .... pure l'header .... ho usato perfino print_r($_SESSION) per controllarne in contenunto... vuoto ... poi mi carica la pagina a cui l'ho reindirizzato e puff ... sessione ancora presente (controllando ancora con print_r())... anche se non c'č + nei presenti ...

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.