Frage zum Formular

Eraser

Grünschnabel
Hi ich habe ein Skript zur Eingabenüberprüfung geschrieben. Jedesmal, wenn ein Fehler auftritt kommt eine Fehlermeldung in Form eines Strings (echo "......").
Genau das will ich ändern. Die Fehlermeldung soll nämlich direkt in dem Formularfeld stehen. D.h wenn ich z.b im Feld mit Variable $name nichts eingetragen habe, dann soll direkt in diesem Feld die Meldung kommen, dass kein Name eingetragen ist. Wie stell ich das an.

Hier ist das Skript (noch unbearbeitet:)

PHP:
<?php

if ($_POST['senden']) {
$mailbody ="Von: $name\n Email-Adresse: $email\n Betreff: $betreff\n Nachricht: $nachricht\n";

$check = "0";

if (strlen ($_POST['name']) < 1) {
    echo "Kein Name";//Hier soll die Meldung direkt im Formularfeld stehen
    
    $check++;
    }

if (strlen ($_POST['betreff']) < 1) {
    echo "Kein Betreff";//Hier soll die Meldung direkt im Formularfeld stehen
    $check++;
    }

if (strlen ($_POST['nachricht']) < 1) {
    echo "Keine Nachricht";//Hier soll die Meldung direkt im Formularfeld stehen
    $check++;
    }

if (strstr ($_POST['email'],"@") && strstr ($_POST['email'],".")) {
    }else{
    echo "Falsche Email";//Hier soll die Meldung direkt im Formularfeld stehen
    $check++;
    }

if ($check > 0) {
}
else {
    mail ("kontakt@haraldw.de", "Formular_HTMLVersion", $mailbody);
    header ("Location: ".$_SERVER['PHP_SELF']);
}

}

?>
 
Du musst dazu das Formular nochmal komplett erzeugen und jedem Input-Tag das Attribut value mit dem eingegebenen Wert oder eben der Fehlermeldung verpassen.

Das Tag sieht dann also etwa so aus:
PHP:
<input type="text" name="name" value="Kein Name!">

Gruß
Falk
 
ok von mir aus :-)
Dann aber nochwas. Wenn der Benutzer dann einen Fehler gemacht hat und dann auf eine andere Seite geleitet wird, wo ihm dann gesagt wird, dass er einen Fehler gemacht hat, soll aber der Inhalt von den anderen Feldern nicht verloren gehen, er soll nicht nochmal alles schreiben, wie stell ich das an?
 
Zurück