Phil: Formular übermitteln

Hallo,

habe mit html ein Eingabeformular mit verschiedenen Auswahllisten, Eingabefeldern etc. geschrieben. Diese werden dann per "post"
an ein php-script übergeben und ausgewertet (fehlende Einträge
und eine Übersichtstabelle in der die Werte zur Kontrolle noch mal angezeigt werden. Soweit sogut.
Ich möchte dann aber, das die Daten erst nach betätigen eines
Submit-buttons in eine MySql-DB geschrieben werden, um evtl. Fehler noch korrigieren zu können.
Wie gehe ich da am besten vor? Script vor der Datenbankverbindung unterbrechen und per Button weiter ausführen? Wie geht das?

Vielen Dank

Phil

  1. Hello Phil,

    Dein Script unterbrechen kannst Du i.d.R. nicht.
    Es sind aber sowieso einzelne Schritte, die Du da vorhast:

    0. Anfordern eines leeren Forms mittels "Erstrequest"
    1. Ausfüllen des Forms am Client
    2. Request ("Upload der Daten" mit HTTP)
    3. Annahme der Daten am Server durch Script
    4. Abspeichern der Daten z.B. in einer Session (alte Daten ggr. überschreiben)
    5. Kontrollausgabe zum Client schicken (Response) mit den Buttons "Speichern" und "Zurück"
    6a. Request mit "Speichern" -> Daten aus der Session holen, passend für die DB escapen
        und Abspeicherchern
    6b. Request mit "Zurück" -> Form aufbauen wie bei 0., aber diesemal vorbelegt

    usw...

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hello,

      das nennt sich dann auch "Affenformular".

      Die Daten werden dem dummen Affen am Client solange wieder vorgelegt (im Form), bis sie ohne Beanstandung sind. Erst dann erhält er die Möglichkeit, sie auch eintragen zu lassen...

      Das geht im Prinzip auch noch ohne Session, nur mit "Ping-Pong"

      Probleme gibt es dabei nur bei hochgeladenen Files (Bildern). Spätestens da benötigst Du eine Session, da der Client bei Fileuploads nicht vorbelegt werden kann (kein default-value für das <input type="file">-Feld) Das geht dann nur noch mit Session (oder Pseudo-Session).

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hi!

    :) Denk mal drueber nach. Du machst es genauso wie jetzt auch: Du nimmst die Daten, generierst deine Pruefseite und bei Submit rufst Du das speichernde Script auf. (Wobei du hier nochmal alles pruefen solltest - Stichwort SQL Injection)

    Dabei kann die pruefseite natuerlich die gleiche sein die auch speichert, du muesstest sie dann nur mit einem angepassten Parameter aufrufen.

    1. Danke erst mal, das hilft schon mal weiter.
      Affenformular finde ich passend, ;)schöner Ausdruck.
      wenn ich das Formular an sich selbst übergebe, wie realisiere ich dann
      den anderen Parameter? Den Namen (value des Submitbuttons)? Diese
      Lösung würde für den Zweck reichen.

      1. Hi!

        Danke erst mal, das hilft schon mal weiter.
        Affenformular finde ich passend, ;)schöner Ausdruck.
        wenn ich das Formular an sich selbst übergebe, wie realisiere ich dann
        den anderen Parameter? Den Namen (value des Submitbuttons)? Diese
        Lösung würde für den Zweck reichen.

        Wenn DuDas alles in einer Datei unterbringst kannst Du durchaus den submitButton zur unterscheidung heranziehen.

        Du musst dich nur noch entscheiden, wie Du die Daten uebergibst. Wieder in einerm Formular (unter umstaenden in hidden fields oder in schreibgeschuetzten feldern) oder ob Du sie per Session speicherst. Genau so kannst Du auch den Parameter angeben, wenn der Submitbutton nicht die Wahl sein soll. Aber Grundsaetzlich ist ein Submitbutton dafuer gut geeignet. Einen fuer 'ja' und einen fuer 'nein'. Schon hast Du ne Fallunterscheidung.