Feldvalidierung
Ein Feld erforderlich machen und seine Form prüfen - beides clientseitig für eine reibungslose Nutzererfahrung durchgesetzt und serverseitig, weil dem Client niemals vertraut werden kann.
Erforderliche Felder
->validation_required($field, $minLength = null) verbietet das Speichern des Formulars, wenn das Feld leer gelassen wurde, und verlangt optional zusätzlich eine Mindestlänge. Beide Prüfungen laufen clientseitig (sofortiges Feedback) UND serverseitig (die tatsächliche Durchsetzung).
$xcrud->validation_required('lastName');
$xcrud->validation_required('password', 8);
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
$field | string | - | Feld, das zum Speichern nicht leer sein darf |
$minLength | ?int | null | Wenn gesetzt, muss der Wert außerdem mindestens diese Anzahl Zeichen haben |
Musterprüfung
->validation_pattern($field, $pattern) verlangt, dass der Wert eines Feldes (falls nicht leer) einem Regex entspricht. Ein leeres Feld besteht eine Musterprüfung für sich genommen - kombinieren Sie sie mit ->validation_required(), um auch das Leerlassen zu verbieten.
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
$field | string | - | Zu validierendes Feld |
$pattern | string | - | Eine benannte Abkürzung oder ein wörtlicher Regex-Körper ohne Begrenzungszeichen |
| Benannte Abkürzung | Entspricht |
|---|---|
email | Einer einfachen user@host-Form |
alpha | Nur Buchstaben |
alpha_numeric | Buchstaben und Ziffern |
alpha_dash | Buchstaben, Ziffern, Unterstrich, Bindestrich |
numeric | Eine Ganzzahl oder Dezimalzahl, optional negativ |
natural | Nur Ziffern (eine nicht-negative Ganzzahl) |
url | Eine http://- oder https://-URL |
Warum serverseitige Durchsetzung wichtig ist
Clientseitige Validierung ist eine Höflichkeit - sie gibt einem Besucher sofortiges Feedback ohne einen Umweg zum Server. Sie ist keine Sicherheitsgrenze: Ein Client kann jede clientseitige Prüfung einfach umgehen, indem er die REST-API direkt aufruft (z. B. mit curl oder fetch()), und dabei das Formular und dessen JavaScript komplett überspringt. Deshalb führen ->validation_required() und ->validation_pattern() beide genau dieselben Prüfungen erneut auf dem Server aus, bevor eine Zeile jemals geschrieben wird. Den rohen Endpunkt, den diese Prüfungen absichern, finden Sie in der REST-API-Referenz.
Alles zusammen
$xcrud = Xcrud::get_instance();
$xcrud->table('employees');
$xcrud->route('employees');
$xcrud->validation_required('lastName');
$xcrud->validation_required('firstName');
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('extension', 'alpha_numeric');
$xcrud->render();