Annahmen
Sie haben ein HTML-Formular mit einer Vielzahl von Eingaben. DasactionAttribut desformverweist auf eine PHP-Datei, die den folgenden Code enthält.
Hinweise zum Code
Dieser Code beginnt mit der Erstellung eines Arrays, das dieNamevon verschiedenen Eingaben enthält, die über POST übermittelt werden.getFormData()wird dann aufgerufen, wobei die erforderlichen Felder übergeben werden. Innerhalb der Funktion wird ein Array erstellt, das verschiedene Daten im Zusammenhang mit dem Formular enthält. $formData[‘valid’] ist ein boolescher Wert, der angibt, ob alle Daten vorhanden und gültig waren, $formData[‘fields’] ist ein Array, das nach dem Namen der Eingabe mit ihrem jeweiligen Wert aus den POST-Daten geschlüsselt ist, $formData[‘notValidFields’] ist ein Array, das die Namen aller Eingaben enthält, die nicht übermittelt wurden oder ungültige Daten hatten.
Diese Logik kann leicht mit regulären Ausdrücken erweitert werden, um strengere Daten wie E-Mail-Adressen und URLs zu prüfen.
<?php
$requiredFields = array('field1', 'field2', 'field3', 'field4');
$formData = getFormData($requiredFields);
function getFormData($requiredFields){
$formData = array();
$formData['valid'] = true;
$formData['fields'] = array();
$formData['notValidFields'] = array();
for($a = 0; $a < count($requiredFields); $a++){
$field = $requiredFields[$a];
if(isset($_POST[$field])){
$value = $_POST[$field];
if(empty($value)){
$formData['valid'] = false;
$formData['notValidFields'][] = $field;
}else{
$formData['fields'][$field] = $value;
}
}else{
$formData['valid'] = false;
$formData['notValidFields'][] = $field;
}
}
return $formData;
}
Ausgezeichneter Schnipsel. Eingabevalidierung ist eines dieser Dinge, von denen die meisten Leute entweder nichts zu wissen scheinen oder sich nicht darum kümmern. Danke fürs Posten!
Immer wenn Benutzereingaben beteiligt sind, ist es eine gute Idee, die Eingaben zuerst zu bereinigen. Fügen Sie einfach diese Zeile hinzu (direkt nach dem öffnenden PHP-Tag in der obersten Zeile)
$_POST = sanitize($_POST);und definieren Sie die Funktionen irgendwo. Ich verwende Bereinigungsroutinen ähnlich wie diese.
Ihr Link ist 404 Not Found
Schön. Und ich schlage vor, Sie fügen ein Beispiel hinzu, um zu sehen, wo der Code-Schnipsel eingefügt werden muss. Ob im Formular oder in der Aktion. Tschüss.