Frage zu meinem Kontaktformular

Trabilady

Grünschnabel
Hallo liebe Community,

ich habe ein Kontaktformular und möchte,
dass der User bei fehlenden Angaben auf der Seite bleibt
und die unausgefüllten Felder farblich hervorgehoben werden.
Hab nur leider keine Ahnung, wie ich das umsetzen soll.

Momentan gibt mein Formular mittels "echo" auf einer neuen Seite HTML-Text aus

PHP:
<?php

    $fehler =''; //Fehler, wenn nichts im Feld steht
    $vorname = $_POST['vor'];
    $nachname = $_POST['nach'];
    $mail = $_POST['mail'];
    $text = $_POST['text'];
    $betreff = $_POST['betreff'];
    $name = $vorname. " " . $nachname;



// Kontrolle, ob alle Felder ausgefüllt sind

    if(empty($vorname)) {  //wenn Vorname fehlt, dann gib $fehler aus
        $fehler .= '<li>der Vorname fehlt.</li>';
    }

    if(empty($nachname)) {
        $fehler .= '<li>der Nachname fehlt.</li>';
    }

    if(empty($mail)) {
        $fehler .= '<li>die Mailadresse fehlt.</li>';
    }

    if(empty($text)) {
        $fehler .= '<li>keine Nachricht eingetragen ist.</li>';
    }

    if(empty($betreff)) {
        $fehler .= '<li>der Betreff fehlt</li>';
    }


    if ($fehler) {
        echo '<p>Ihre Nachricht wurde nicht gesendet, weil</p>';
        echo "<ul>" . $fehler . "</ul>";
    }
      else {

        header("Location: http://***.de/***.html");

      }

?>

Ps. Über eine anfängerfreundliche Erläuterung wäre ich sehr dankbar
 
Zuletzt bearbeitet:
Hi,

das lässt sich leider nicht so in 1-2 Sätzen erklären.
Es gibt i.W. mehrere Ansätze:
a) Du machst es mit html5=> dann kannst du von den entspr. Feldtypen partizipieren input type="url"... => Nachteil: Auf html5 reagieren nicht alle Browser
b) Du prüfst mit Javascript vor dem Abschicken => Nachteil: wenn der User Javascript deaktiviert hat, geht die Prüfung nicht
c) Du prüfst serverseitig, d.h. nach dem Abschicken und kehrst - falls irgendetwas nicht passt - zur gleichen Seite zurück => Nachteil: neu laden; Vorteil: du hast die Prüfung ziemlich sicher im Griff.

Wenn du a) oder b) wählst, würde ich zur Sicherheit serverseitig trotzdem nochmal testen und vor allem die Variablen nicht direkt und ungefiltert übernehmen.

Am Ende kommt es auch darauf an, was du mit den Eingaben machen willst. In Datenbank schreiben und/oder Mail senden.

Ich hoffe, dass ich jetzt nicht zusätzliche Fragezeichen erzeugt habe. Wenn du über eine der drei Varianten mehr wissen willst, einfach melden !
 
Zurück