Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Logout che non funziona

    Salve.
    Ho un piccolo problema con il logoff del mio sito che spiego meglio di seguito.
    Ho creato un'area riservata per i miei clienti, i clienti accedono con una username e password.
    Il primo file php si occupa di identificare il cliente, se le credenziali inserite sono esatte imposta la variabile di sessione utente a "verificato" come di seguito:
    codice:
    session_start();
    //controllo le credenziali e se sono esatte allora ...
    $_SESSION['utente'] = "verificato";
    Gli altri file, quelli riservati al cliente, iniziano con il seguente codice:
    codice:
    session_start();
    $utente = $_SESSION[utente];
    if ($utente!=="verificato")
        {
        die('Accesso negato');
        }
    E fin quì tutto funziona.
    Adesso ho creato un file php per effettuare il logoff con all'interno una semplice istruzione:
    codice:
    session_start();
    $_SESSION[utente] = "";
    La variabile di sessione viene settata perfettamente a valore niente.
    Il problema e che, cliccando sulla freccia indietro del browser, la variabile di sessione viene ripristinata rendendo vano il mio lavoro.
    E' normale?
    Posso risolvere il problema in qualche modo?
    Grazie.
    M.

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ciao prova cosi a fare il logout.

    session_start();
    $_SESSION = array(); //Desetto tutte le variabili di sessione
    session_destroy(); //Distruggo le sessioni
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    A parte che è un sistema demenziale, perché così facendo sai che l'utente è loggato ma non sai chi è....
    In ogni caso, il tasto indietro del browser non ripristina proprio niente, si limita a ricaricare la pagina dalla propria cache. Hai provato a premere PF5 di seguito?

  4. #4
    X Fractals87
    Si, ho già pensato ma non è possibile in quanto ho altre variabili di sessioni settate che mi servono.
    Con il sistema che mi hai proposto distruggo anche queste.
    Il mio problema è capire come mai il tasto indietro del browser mi ripristina la variabile di sessione e come risolvere questo problema.
    Comunque grazie per la risposta.

    X luca200
    Innanzitutto grazie per la risposta e per il commento espresso al codice che ho creato.
    Il codice postato è un esempio ridotto di quello che ho creato, semplicemente per non complicare le cose a chi legge.
    Identifico benissimo chi si logga.
    Sicuramente persone più esperte di me riescono a fare di meglio ma, per le mie capacità, mi accontento di quello che ho fatto.
    Valuto ben volentieri eventuali consigli.
    Premendo F5 non risolvo nulla, il problema persiste, avevo già pensato a questo. :smack
    Controllerò meglio il codice per identificare eventuali errori.
    Comunque grazie lo stesso

    M.

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Mariastella1975
    Il codice postato è un esempio ridotto di quello che ho creato
    Se il codice che posti non è quello vero, difficile aspettarsi che chi legge trovi l'errore

  6. #6
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    session_start();
    //controllo le credenziali e se sono esatte allora ...
    $_SESSION['utente'] = "verificato";

    la session non viene ripristinata dalla cache il problema a mio avviso (anzi quasi sicuramento) sta nel codice che che al posto del commento.
    Al click di "torna indietro" viene rieseguita quella porzione di codice e viene risettata la session utente....
    Che mestiere difficile.....essere da soli ancora di più

  7. #7
    Postare l'intero codice fa soltanto sì che le persone non mi rispondano, il codice che ho postato riproduceva quello che ho in effetti creato.
    Comunque ho risolto il problema.
    Nella pagina php che ho creato ho fatto in modo che, se la variabile di sessione scadeva (per questioni di tempo di inattività), le credenziali di accesso venivano recuperate da altre fonti quali variabili di link e altre variabili di sessioni (magari settate di recente e non acora scadute), proprio come ha detto Fractals87.
    Adesso ho trovato l'errore, devo soltanto decidere come procedere.
    Grazie a tutti.
    Mariastella

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Ciao Mariastella1975,

    se ti può essere d'aiuto, anche io sto gestendo l'utenza per un sito che sto creando, e il logout l'ho gestito semplimente eliminando dalla sessione la variabile con il metodo unset().

    Vedi anche su internet dovresti trovare anche degli esempi....

    Ciao...

  9. #9
    Ciao manublack.
    Grazie mille per il consiglio.
    Il mio problema è che mi scappavano alcune variabili di sessione e di link, una volta che mi sono accorta del problema ho corretto l'errore e adesso funziona bene o quasi.
    Dico quasi perchè c'è ancora un piccolo problema che non sono riuscito a risolvere e chiedo consigli a chi sa risolverlo.

    Ho le seguenti pagine php:

    pagina1.php con il form per il login
    pagina2.php recupera i dati dal form, li verifica e, se esatti, conferma a video la scritta login avvenuto
    pagina3 effettua il logout resettando le variabili di sessione.

    Ho provato a consultare le pagine del mio sito come di seguito:
    1) chiamo pagina1.php ed inserisco i dati
    2) chiamo pagina2.php che recupera i dati da pagina1.php, li processa ed accedo all'area riservata, mi mostra la scritta login effettuato
    3) chiamo pagina3.php per effettuare il logout resettanto tutte le variabili, mi indirizza ad una ad altra pagina.php

    Il mio problema è: se clicco sulla freccia indietro del browser, mi viene aperta di nuovo la pagina2.php che tenta di recuperare (e lo fa con successo) i dati dal form contenuto nella pagina1.php nonostante questa pagina non venga più chiamata.

    So di essere stata un pò complicata ma non sò come essere più chiara.
    Grazie mille.
    Ms.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Originariamente inviato da Mariastella1975
    Ciao manublack.
    Grazie mille per il consiglio.
    Il mio problema è che mi scappavano alcune variabili di sessione e di link, una volta che mi sono accorta del problema ho corretto l'errore e adesso funziona bene o quasi.
    Dico quasi perchè c'è ancora un piccolo problema che non sono riuscito a risolvere e chiedo consigli a chi sa risolverlo.

    Ho le seguenti pagine php:

    pagina1.php con il form per il login
    pagina2.php recupera i dati dal form, li verifica e, se esatti, conferma a video la scritta login avvenuto
    pagina3 effettua il logout resettando le variabili di sessione.

    Ho provato a consultare le pagine del mio sito come di seguito:
    1) chiamo pagina1.php ed inserisco i dati
    2) chiamo pagina2.php che recupera i dati da pagina1.php, li processa ed accedo all'area riservata, mi mostra la scritta login effettuato
    3) chiamo pagina3.php per effettuare il logout resettanto tutte le variabili, mi indirizza ad una ad altra pagina.php

    Il mio problema è: se clicco sulla freccia indietro del browser, mi viene aperta di nuovo la pagina2.php che tenta di recuperare (e lo fa con successo) i dati dal form contenuto nella pagina1.php nonostante questa pagina non venga più chiamata.

    So di essere stata un pò complicata ma non sò come essere più chiara.
    Grazie mille.
    Ms.
    Si ho capito quello che vorresti dire.... Ma semplicemente se elimini le variabili dalla sessione non ti viene piu semplice?

    Anche perchè se quelle variabili le utilizzi esclusivamente per il login non vedo perchè non eliminarle, anche perchè cosi primo non tieni molte cose in memoria e poi, credo che anche effettuando indietro con il browser non dovresti piu vedere l'utente loggato.

    Questo perchè le variabili non essendo più presenti non vedrai piu le utenze loggate...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.