Wie schaffe ich es das die Formularseite nicht von der Bestätigung oder einem Fehler überdeckt wird.
Gar nicht.
Du forderst über einen URL eine neue Seite vom Server an. Daß *nebenbei* auch eine Datei zu diesem transportiert wird, das ist quasi ein Seiteneffekt, der aber nichts daran ändert, daß der Server dem Browser ein Dokument 'schuldig' ist.
Das Archiv-Suchskript http://www.teamone.de/cgi-local/sfasuch.pl hat dasselbe 'Problem'.
Es ist dort dadurch gelöst, daß das Skript selbst (!) das ursprüngliche HTML-Formular ausgibt, wenn es *ohne* CGI-Parameterwerte aufgerufen wird.
Und wenn es *mit* Parameterwerten aufgerufen wird, dann 'arbeitet' es auf dem Server - und gibt danach wieder dasselbe Eingabeformular aus (sogar inklusive der dort zuvor vom Anwender eingetragenen Werte).
Und danach gibt 'ganz nebenbei' auch noch das Suchergebnis aus ... ;-).