PHP e avviso di pagina scaduta

Ciao...

Ho una form che invia i dati ad un database. Se va tutto bene l'utente vede una pagina che Ringrazia e conferma la memorizzazione dei dati nel database.

Se da questa pagina di conferma l'utente clicca sui pulsanti 'Back' o 'Aggiorna' del browser i dati vengono reinviati al database e così mi trovo i dati duplicati nel database.

Vorrei avere un avviso di pagina scaduta quando l'utente esegue una di queste operazioni operazioni. In modo che i dati non vengano reinviati. Come posso fare?

inviato 7 anni fa
sasti07
X 0 X

O utilizzi i cookie per memorizzare la sessione e memorizzare un valore che dice che l'utente ha già inviato i dati o fai un controllo nella tua pagina php che inserisci le cose nel database in modo tale che confronti i dati forniti con quelli presenti nel database.

Altro al momento non mi viene in mente...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

ok... ma se utilizzo il parametro per verificare che l'utente abbia inviato i dati in sessione?

quello che succede è che quando la sessione scade questo parametro è nullo!!!

Come faccio ad impostare il lifetime per la sessione e magari il refresh ogni tot di tempo?

risposto 7 anni fa
sasti07
X 0 X

Se usi le sessioni in php, prima di salvare i dati non fai in modo di controllare che la sessione sia attiva?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

cioè? con session_start()?

risposto 7 anni fa
sasti07
X 0 X

Forse non ci siamo capiti...

Tu usi le sessioni di php?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

si uso le sessioni e vorrei allungare il tempo di sessione che di default mi sembra sia 1440 sec., con una funzione del tipo ini_set('session.gc_maxlifetime')...

risposto 7 anni fa
sasti07
X 0 X
ini_set('session.gc_maxlifetime')...

Questa è la sintassi:

ini_set(session.gc_maxlifetime, num_secondi);

Lo metti all'inizio del tuo script.

Ora se tu usi le sessioni potresti salvare una variabile booleana che ti indichi che già sono stati salvati i dati nel database no?

Però tu hai affermato questo:

quello che succede è che quando la sessione scade questo parametro è nullo!!!

Ora, tu come fai a fare il salvataggio dei dati? Non fai nessun controllo prima di salvare i dati?

Se usi le sessioni puoi fare il controllo se la sessione è attiva allora fai il secondo controllo e vedi se sono stati inviati i dati al db altrimenti stampi un messaggio di avviso o quello che vuoi....

Non so se ci siamo capiti ora...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

ok... grazie... ora provo...

risposto 7 anni fa
sasti07
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda