Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PHP] Evitare insert o update con tasto aggiorna o indietro del browser.

    Ciao a tutti,

    studiacchiando il php mi sono trovato con un dilemma, una stupidata ma chiedo consiglio a voi.

    ho, una pagina con un modulo che mi inserisce i dati in una tabella,
    se una volta eseguito lo script premo f5 (per esempio) o se ci torno premendo il tasto indietro del browser, la query viene eseguita di nuovo e mi ritrovo (con insert) due valori nella tabella uguali.

    c'è un modo di evitare questa cosa?

    voi come fate?

    Grazie per le risposte

  2. #2
    Hai due possibilità:
    1) l'INSERT e l'UPDATE li esegui in un file separato ed esegui dei redirect per ritornare alla pagina che esegue l'azione.
    2) dopo l'INSERT e/o l'UPDATE crei una variabile di sessione con la serializzazione dei dati inviati così da poterli controllare in caso di un'azione duplicata.

    la prima strada è decisamente più semplice ed ordinata.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    oppure ancora eseguire INSERT se il record non è già presente (es. controllo presenza email già registrata)
    If you think your users are idiots, only idiots will use it. DropBox

  4. #4
    Più semplice,
    Dopo che ti sei assicurato che la query abbia inserito i valori nel database, metti un redirect html alla stessa pagina.

    Codice PHP:
    <meta http-equiv="refresh" content="1;url=<?php print "scrivi-articoli.php?inserimento=1";?>">
    poi dove vuoi far stampare il messaggio di avvenuto inserimento...

    Codice PHP:
    <?php if(isset($_GET['inserimento']) == 1){
      Print 
    "Inserimento riuscito con successo";
    }
    ?>
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Che è esattamente ciò che ha detto oly1982, messaggio a parte.

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.