Formular Daten bei Fehleingabe speichern

D-LuX

Erfahrenes Mitglied
Hallo,

hoffe ich bin hier richtig, oder muss ich ins html Forum? :)

ich möchte bei einem Formular die Eingaben prüfen und bei Fehleingaben zum Formular zurück.

natürlich sollen die korrekt ausgefüllten Felder gespeichert werden, damit sie nicht nochmal eingegeben werden müssen ..

Soweit ich weiß, funktioniert das über value=""

Mein Quelltext sieht dort wie folgt aus ..

HTML:
<tr>
<td class="text">Vorname *</td>
<td><input name="vorname" value="<?php echo $_POST['vorname']?> "class="textbox"  maxlength="50" style="width: 220px;" type="text"></td>
</tr>
 
Ja das value-Attribut ist das richtige. Die Ausgabe sollte allerdings maskiert werden:
PHP:
<td><input name="vorname" value="<?php echo htmlspecialchars($_POST['vorname']); ?>" class="textbox" maxlength="50" style="width: 220px;" type="text"></td>
 
Du musst das Formular an dasselbe Skript schicken, damit die Eingabewerte wieder ausgegeben werden können.
 
Du versendest die Fehleingabe wahrscheinlich mit header(); oder? Ich würde dir vorschlagen, die Einträge in eine Session zu schreiben, und dann bei value die Session auslesen.
 
Mit Sessions habe ich noch nicht gearbeitet ..bin noch ziemlich am anfang.

@Gumbo: Mein Formular wird auf senden.php geleitet bei absenden ..meinst du das?
ich soll alles in eine Datei schreiben?
 
Bau es am besten wie folgt auf:
PHP:
$errors = array();
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
	if( !isset($_POST['foobar']) || trim($_POST['foobar']) == '' ) {
		$errors[] = '„foobar“ enthält keinen gültigen Wert!';
	}
	// …
}

if( $_SERVER['REQUEST_METHOD'] == 'GET' || !empty($errors) ) {
	if( !empty($errors) ) {
		echo '<div class="error">Bei der Verarbeitung sind Fehler aufgetreten.<ul>';
		echo '<li>'.implode('</li><li>', $errors).'</li>';
		echo '</ul></div>';
	}
	// Ausgabe des Formulars
}
 
Zurück