Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [$_SESSION] Anomalia con cancellazione dati in $_SESSION

    Buongiorno a tutti,

    sto effettuando dei test e ho riscontrato una stranezza.

    Vi illustro l'iter dello script in questione.

    1) L'utente immette i dati nei vari campi input/text
    2) L'utente preme sul pulsante Invio (..e, nel premere, i dati immessi vengono portati in variabili $_SESSION)

    2) <condizione> - Se l'utente ha commesso degli errori nell'immissione dei dati (ad esempio numeri al posto di lettere o caratteri non ammessi), la pagina visualizza il messaggio di errore e riporta, attraverso le variabili $_SESSION riempite dopo l'invio dei dati, ciò che l'utente aveva digitato anche se erroneamente (al chiarissimo fine di evitare il seccante inserimento dei dati).

    3) Se l'utente ha digitato tutto correttamente, passerà alla pagina di PayPal per completare l'operazione.


    STRANEZZA: se l'utente, dalla pagina di paypal ritorna indietro di pagina web, (chrome) visualizza l'avviso di conferma sul reinvio dei dati. In caso positivo, l'utente rivedrà comparire la mia pagina E CON LE VARIABILI DI SESSIONE PIENE!!

    Com'è possibile ciò?
    Com'è possibile se faccio: $_SESSION = array(); e poi session_destroy(); alla fine della pagina?

  2. #2
    la rivede il tuo browser tramite la sua cache.

    dopo che sei tornato indietro prova un refresh della pagina con F5

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Niente. Ogni refresh effettuato sulla pagina in questione riporterà sempre i dati digitati nelle input ai loro posti.

    Non faccio uso di db o altro. Tutte le operazioni vengono svolte sulla stessa pagina.

    Ma dato che è il browser che le riporta indietro attraverso la sua cache...come posso fare per (far - se possibile) eliminare la cache (con i dati di sessione) dell'utente?

    Ti prego non dirmi che devo operare sugli headers che non c'ho voglia e tempo!

  4. #4
    Ma non e' che puoi evitare/impedire all'utente di fare quel che gli pare sul tuo pc. Puoi depistarlo con un redirect su altra pagina (di ringraziamento o di diniego) prima di reindirizzarlo su quella incriminata in modo da svuotare il POST. Tieni presente che i dati che visualizzi sono quelli del form e non quelli del file di sessione ormai azzerato.

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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Sono pignolo

    Per ora va bene così. Anche perchè non è un problema grosso. Non viene effettuato un secondo invio dei dati perchè mancano altri presupposti

    Grazie mille!

  6. #6
    Se i dati sono inviati tramite POST, è normale, ma dovrebbe apparire l'avviso classico "attenzione, si stanno per reinviare dati eccetera".
    Se sono inviati tramite GET, è ancora più normale perchè se torni indietro col browser, torni a una pagina tipo "invio.php?dato1=3&dato2=tre&dato4=yes".
    L'unico modo potrebbe essere di far sì che, alla pressione del tasto "invio", si passi per una pagina intermedia del tipo "attendere, tra due secondi si verrà reindirizzati" eccetera. In questa pagina di servizio, svuoti session e compagnia bella e ovviamente inserisci un controllo tale per cui, se manca ad esempio il session["unique_id"], si viene reindirizzati automaggicamente alla pagina principale


  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie per il suggerimento Dacos. Mi è stato di grande aiuto.


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.