Bardzo dobry sposob podal kiedys
Nospor, ktorego sam uzywam i ani razu jeszcze nie dodalo mi podwojnie.
Cytuje @NosporCytat
PRzy tworzeniu formularza, generują unikalny identyfikator, na podsawie chociazby timestampa i czegos tam jeszcze. Identyfikator ten dokladam do formularza, jako wartość pola ukrytego. Po wyslaniu formularza sprawdzam, czy dany identyfikator jest zapisany w sesji. jesli nie, zapisuję go do sesji a formularz akceptuję jako prawidlowy. jesli jednak ten identyfikator jest juz zapisany w sesji, znaczy ze jest to refresh i dane z formularza odrzucam.
a tutaj masz
link do calego tematu
Pozdrawiam