Hallo!
Das kann Dir ohne den Quellcode wohl keiner sagen. Vielleicht hast Du ja aus versehen einen Fehler im Javascript? Oder keinen richtigen Fehler nur das der Browser aus igrndeinem Grund durch das Javascript das Formular erneut absendet, man weiß es nicht!
Serverseitig könntest Du das z.B. mit einer Session abfangen, Du könntest z.B. beim empfangen der Daten eine Sessionvariable auf einen bestimmten Wert setzen, und wenn die Variable schon auf diesem Wert steht, machst Du halt nichts, bzw. gibst eine Fehlermeldung aus und ermöglichst es ggfs die Daten zu ändern oder was auch immer Du da vorhast. Wenn sich der User vorher eingeloggt brauchst Du keine Session, dann kannst Du das mit jedem x-beliebigen Zähler zusammen mit der UserID machen. Genauso kannst Du ein hidden Field ins Formular schreiben, und immer wenn das gesetzt ist diese Variable in die session schreiben und wenn die Variable nicht gesetzt ist diese ggfs aus der Session löschen, so bekommst Du sofort mit wenn die Variable 2 mal hintereinander geschickt wurde! Für das eine Formular brauchst Du wenn Du das nicht willst keine Session, Du müßtest Dir dann aber so einen Mechanismus etwas vereinfacht nachbauen! Wobei das bestimmt mehr Arbeit ist, zumindest in PHP erheblich mehr!
Grüße
Andreas