Mi chiedo quali sono le tecniche che posso utilizzare per evitare che gli utenti postino il modulo due volte quando aggiornano la pagina e scelgono di inviare nuovamente?
ad es. Ho un modulo all'interno di regiter.php e lo elaboro anche all'interno di register.php.
potevo elaborare in un altro file, ad es. register_process.php e reindirizzare a register.php, ma poi devo creare circa 20 nuove pagine e ricollocare un sacco di codice, non voglio quell'opzione.
secondo ho potuto giocare con headers
mi ricordo trucco esatta, ma avuto qualche brutta esperienza con questo - gli utenti visto vecchi dati a pagina dopo l'aggiornamento è ...
3 ° ho potuto solo reindirizzare in caso di successo ad alcuni dummy.php e da dummy.php salto indietro al register.php quindi anche se refresh della pagina del browser non sarebbe ri-post, tuttavia non protegge contro di loro utilizzando pulsante indietro ec Hoose re-post, so che potrei scadere della pagina, ma trovo che un'esperienza fastidiosa per me e probabilmente altri utenti di vedere l'errore di pagina scaduta.
utilizzare una "chiave di accesso" univoca per ogni modulo una volta caricata la pagina che pubblicherà con modulo e una volta utilizzata non può essere riutilizzata, tuttavia mi piace lottare con le logiche di quella funzionalità. come si fa a sapere che la chiave è stata utilizzata senza memorizzarla nel DB MySQL, penso che l'accento basato sul tempo non sia eccezionale perché alcuni utenti possono impiegare molto tempo tra la pagina aperta e il modulo submit.
Ho bisogno di ulteriori suggerimenti su come evitare che gli utenti si riposino nuovamente.
Ho fatto qualcosa di simile, tuttavia usato più righe di codice :) Il problema è se refresh della pagina prima di inviare modulo, '$ _SESSION [ 'postdata']' non sarà più lì P.S. Qualsiasi vantaggio nell'uso di 'strcasecmp ($ _ SERVER ['REQUEST_METHOD']," POST ")' invece di '$ _SERVER ['REQUEST_METHOD'] ==" POST "'? –