Du überschreibst sie, indem Du die registrierte Variable mit einem neuen Wert setzt oder indem Du session_unregister benutzt.
Ja, aber wenn ich session_unregister verwende, dann ist der Wert ganz weg. Man weiß ja nicht vorher ob es eine falsche Eingabe war oder nicht.
Und was hindert Dich daran einfach nochmal alle Felder in die gleichen Variablen zu speichern, in die Du sie ja vorher schon erfolgreich gespeichrt hast?
Also User kommt, kriegt Formular vorgesetzt...
User füllt Formular aus und schickt es ab...
Skript registriert die Formulardaten in einer/der Session und leitet wieter an die Darstellung, um die Eingabedaten zu überprüfen...
User findet Fehler in seiner Eingabe und klickt auf den Link zum Formular...
User ändert die fehlerhaften Daten im Formular und schickt Formular nochmals ab...
Skript registriert die Formulardaten in Session... etc.