Scusa, non ho capito che intendi...
Il meccanismo è questo:
- pagina A | inserimento dati nel form
- pagina B | ricezione dati via POST ed inserimento nel db
Se, come suggerisci tu giustamente, gli inserimenti multipli possono essere dovuti al fatto che gli utenti, arrivati alla pagina B (dove, via AJAX, hanno una preview della news formattata), tornano indietro alla pagina A, e quindi poi reinviano i dati alla pagina B, se - ad es. - con un campo hidden passo un valore X dalla pagina A alla pagina B, cosa me ne faccio se l'utente usa il pulsante back del browser per andare indietro?
Se voglio dare all'utente la possibilità della preview, devo registrare i dati nel db. Certo, potrei mettere un link back, che passi ad esempio l'id della news appena inserita, così se l'utente fa delle modifiche e poi rinvia i dati, passo anche questo valore e poi nella pagina B riconosco la news come esistente e faccio l'update invece dell'insert. Ma se usa il pulsante back del browser?
E comunque, a parte il fatto che mi sembra strano che un utente torni indietro 3 volte senza fare alcuna modifica (caso reale), almeno in un caso un utente mi ha inviato un messaggio proprio per dirmi "l'ho inserita una volta, è apparsa due".
Dunque, per quanto la tua ipotesi sia possibile (ed in quanto tale, da prevedere comunque), ho l'impressione che il problema stia altrove...