Hallo,
Folgeszenario B: Header (Location usw..) - Kunde kann nicht reloaden und nochmal eintragen, was mich und die DB freut, aber leider, leider sind natürlich so alle Variablen wech, der Kunde sieht also nun nicht mehr, welche Kundennummer er bekommen hat und welche Daten er eingab. Böse, böse.
Grundsätzliches erst mal zur Weiterleitung. Ich hab' dazu mal 'ne Frage ins Forum gestellt (Browserunterstützung, Einhaltung des HTTP-Standards), vielleicht interessierts dich ja mal:
</archiv/2002/9/23708/>
</archiv/2002/9/23976/>
Desweiteren: Kannst Du mit Sessions arbeiten? Wenn ja, dann kannst Du es ja so machen, dass (a) der Benutzer nur das Formular abschicken kann, wenn er schon eine Session gestartet hat (in der Session merken, ob er schon mal auf dem Formular war)
Dann hast Du mehrere Alternativen:
Ohne Weiterleitung: Dann kannst Du Dir zusätzlich beim Submit merken, ob das Formular schon mal abgeschickt wurde. Dann kannst Du stattdessen die Kundennummer noch mal raussuchen, anstelle dass Du die Daten noch einmal einträgst.
Mit Weiterleitung: Du speicherst in der Session auch die Kundennummer (in der Submit-Seite) und gibst sie in der zweiten Seite, auf die weitergeleitet wurde, aus.
Mit Weiterleitung (narrensicher): Du kombinierst beides, da Reload nicht das einzige ist, um ein Formular 2x zu submitten (zweimal auf den Button geklickt?)
Wenn Du nicht mit Sessions arbeiten kannst, dann könntest Du Dir höchstens die IP merken, aber das ist irgendwie auch blöd.
Oder Du machst das ganz anders: Du schaust bei jedem Submit, ob exakt dieselben Kundendaten schon mal in die DB eingetragen worden sind, und holst Dir ggf. die Kundennummer. (bzw. kombinierst das ganze in einem SELECT - das halt 1 Zeile zurückliefert, falls schon etwas vorhanden und keine Zeile falls noch nichts vorhanden) Dann brauchst Du auch keine Sessions und keine Weiterleitung.
Such' Dir einen Lösungsansatz aus.
Grüße,
Christian