vielleicht habt ihr ne lösung

kubanese

Mitglied
servus

also ich hab ein prob bzw mir fällt nix ein.

ich hab ein formular mit verschiedenen eingabefeldern.
da is auch ein button zum abschicken der eingaben.

jetzt soll geprüft werden, ob die pflichtfelder ausgefüllt werden und noch ein paar spezielle sachen (wie, dass das "@"-Zeichen in der email adresse steht und so...).

dies soll aber alles erst geschehen wenn das formular "abgeschickt" (also der benutzer auf den button gedrückt hat) geschehen.
falls dann fehler auftreten (wie nich ausgefülltes pflichtfeld usw...) soll die gleiche seite nochmal aufgebaut werden, aber diesmal mit ner fehlermeldung bei dem jeweiligen eingabefeld.
falls jedoch kein fehler voliegt, sollen die daten in eine datenbank geschrieben werden.

wie kann ich des am besten lösen, wenn nur 2 .php seiten genutzt werden sollen?

dank schonmal im vorraus

mfg
kubanese
 
Du lässt das Formular einfach an die gleiche Seite schicken, in dem es ausgegeben wird. Dann machst du, bevor das Formular ausgegeben wird die Fehlerüberprüfung (natürlich nur, wenn auch das Formular abgeschickt wurde). Wenn es einen Fehler gab, dann gibst du bei der Formularausgabe einen entsprechenden Hinweis mit aus. Alle Felder, die richtig eingegeben werden, solltest du am besten speichern, und für die Form-Elemente als Defaultwert angeben. Sonst ärgert sich blos jemand drüber, dass er alles neu eingeben muss, wenn er sich irgendwo vertippt hat, o.ä.
Sollte es keinen Fehler gegeben haben, dann trägst du die Daten in die DB ein, und setzt noch nen header('Location: ...') dahin, wo man halt hinkommen soll. Du kannst noch z.B. in einer Session-Variable speichern, dass eine Eingabe gemacht wurde, und das dann entsprechend auf der Seite, wo man danach hinkommt, ausgeben. Sonst weiß der User ja nicht, dass auch alles geklappt hat.
So in etwa würde ich das realisieren.
 
Eigentlich brauchst Du dazu nur eine PHP-Seite.
Du gibst dem Absendebutton einen Namen z.B. save und leitest das Formular auf dieselbe Seite, in der Du es erstellst.
PHP:
if (empty($_GET['save'])) {
  $showform=true;
} else {
  $errors=array();
   //Formularprüfungen
   // mit $errors[] = "Fehlermeldung";
   // Die Fehlermeldungen generieren
   if (sizeof($errors)==0) {
        //eintragen
        //Bestätigungsnachricht
   } else {
       $showform=true;
   }
}
if (!empty($showform)) {
    //Dein Formular samt Fehlermeldungen ausgeben
    //ggf. die bereits angegebenen Werte vorbelegen
    //das Formular hat als action das eigene Skript.
}

Ich denke, dass sollte Dein Problem treffen.

Und nächstes mal bitte mit Groß- und Kleinschreibung.
 
Zurück