В любом браузере можно отключить переадресацию, к примеру, и нажать Ф5. Можно нажать кнопку назад, так же попадём на страницу отправки формы.
То есть переадресация - это не выход, если не хотим хранить дубли.
Я использую метод как с капчей, создаём ключ, в скрипте проверяем его наличие в сессии и в переденных данных, если совпадает -ключ удаляем, операцию производим. Если ключа нет - простая переадресация. Итого ни Ф5, ни несколько нажатых кнопок "отправить" не создадут дубли.
Сюда же можно на JS написать скрипт, который после первого нажатия на кнопку отправить - будет блокировать событие: onsubmit для формы.
Сюда же добавить проверку данные при внесении в БД, чтобы дублей не было от желания вручную создать дубль.
Сюда же выше замеченную переадресацию добавить.
Вроде всё, этого должно хватить, чтобы дублей не было.
_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).