Steffen Malte: Interaktion mit Formularen

Mahlzeit,

  • 2 Formulare bzw. Skripte (erfassen.php, eintragen.php)

Benutzerformular - Eingabemöglichkeiten abfangen bzw. darauf reagieren.
Folgende Situationen können auftreten:

  • Benutzer gibt alles korrekt an -> Daten werden in Datenbank hinterlegt.
  • Benutzer lässt einige Felder offen -> Meldung, dass die jeweiligen Felder auszufüllen sind.
  • Benutzer gibt alle Felder an, allerdings ist er als Benutzer nicht
    registriert. Er sollte nach einem Hinweis trotzalledem die Möglichkeit
    bekommen sein Anliegen hinterlegen zu können. <- MEIN PROBLEM

Das umsätzen der einzelnen Funktionen (sind bereits fertig und funktionieren auch korrekt),
ist nicht das Problem sondern die Interaktion. Das bedeutet: Wenn der Benutzer nicht
vorhanden ist, sollte er ganz normal, nach auslösen der erfassen.php,
durch das Skript eintragen.php gehen .... Schritt für Schritt.
In der "IF" -> Benutzer_überprüfen_Funktion fliegt er raus und wird
an das erfassen.php zurückgeleitet mit dem Parameter eingabe=1.

Nun sollte dem Benuter die Möglichkeit geboten werden durch erneutes
betätigen des "erfassen-Buttons" dennoch die Infos in die Datenbank
hinterlegen zu können. Das würde bedeuten, dass er nicht die zweite
IF-Abrage durchläuft sondern direkt zur letzten ELSE Klausel übergeht.

Wie kann ich dieses Problem lösen.
Danke schoneinmal im Voraus.

Gruß
Steffen

So sieht es in etwa bei mir aus:

eintragen.php
-------------
if (!Felder_überprüfen_Funktion) {
 header("Location: erfassen.php&eingabe=0");
}
else {
  if (!Benutzer_überprüfen_Funktion) {
    header("Location: erfassen.php&eingabe=1");
  }
  else {
     Anscheinend ist alles korrekt ... somit werden hier die
     Infos in die Datenbank hinterlegt.
     Danach -> header("Location: erfassen.php&eingabe=2");
  }
}

erfassen.php
------------
$eingabe = $_GET['eingabe'];
switch ($eingabe) {
 case '0' : hinweis_keine_angaben();
  break;
 case '1' : hinweis_benutzer_fehlt();
  break;
 case '2' : hinweis_alles_ok();
  break;
}
...

  • Eingabefelder die nach betätigen des "erfassen-Buttons"
    an das "eintragen.php" Skript übergeben werden.

PS: hatte an "hidden"-Felder gedacht, die den jeweiligen Wert von
$eingabe an das eintragen.php Skript zurücksendet. An welcher Stelle
müsste ich diese in "eintragen.php" abfragen?

  1. hi,

    • Benutzer gibt alle Felder an, allerdings ist er als Benutzer nicht
      registriert. Er sollte nach einem Hinweis trotzalledem die Möglichkeit
      bekommen sein Anliegen hinterlegen zu können. <- MEIN PROBLEM

    dann würde es sich wohl anbieten, die bisherigen eingabe in einer session zwischenzuspeichern, und ihm nach erfolgter anmeldung das formular erneut vorzusetzen, in dem diesmal alle felder schon mit seinen alten eingaben vorbelegt sind.

    http://www.php.net/manual/de/ref.session.php

    gruss,
    wahsaga

  2. Hello,

    ... nicht ohne eine Session!

    Oder jedesmal vollständige Prüfung, ob der Benutzer autorisiert ist. Mit der Session macht ja im Prinzip nichts anderes, als sich darin zu merken, ob der User sich authentifizieren konnte.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen