Um ein versehentliches Neuabsenden des Formulars (z.B. durch F5-Taste) zu verhindern, habe ich bisher immer ein Redirect am Ende der Verarbeitung ausgelöst.
Und was soll das bringen? Wenn du bei der Gratis-Brezel-Verteilung bei der Politikveranstaltung deiner Wahl verhindern willst, dass sich jemand 2x ein Brezel holt, schickst du ihn doch auch nicht einfach zu einem anderen Stand sondern merkst dir sein Gesicht.
Erstelle einfach einen Streuwert aus den eingegebenen Werten und der Session des Besuchers, diese verspeicherst du gemeinsam mit den Formulardaten in deiner Datenbank oder wo auch immer - beim Absenden eines Formulars wird einfach geprüft, ob diese Prüfsumme schon existiert - und darauf kannst du reagieren, ohne Redirect.