/

Validation des champs

Rendre un champ obligatoire et vérifier sa forme - toutes deux appliquées côté client pour une expérience fluide, et côté serveur parce que le client ne peut jamais être digne de confiance.

Champs obligatoires

->validation_required($field, $minLength = null) interdit d'enregistrer le formulaire si le champ est laissé vide, en exigeant éventuellement aussi une longueur minimale. Les deux vérifications s'exécutent côté client (retour instantané) ET côté serveur (l'application réelle).

$xcrud->validation_required('lastName');
$xcrud->validation_required('password', 8);
ParamètreTypeDéfautDescription
$fieldstring-Champ qui doit être non vide pour enregistrer
$minLength?intnullSi défini, la valeur doit également compter au moins ce nombre de caractères

Validation par motif

->validation_pattern($field, $pattern) exige que la valeur d'un champ (lorsqu'elle est non vide) corresponde à une expression régulière. Un champ vide passe seul la vérification du motif - associez-le à ->validation_required() pour aussi interdire de le laisser vide.

$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');
ParamètreTypeDéfautDescription
$fieldstring-Champ à valider
$patternstring-Un raccourci nommé, ou un corps d'expression régulière littéral sans délimiteurs
Raccourci nomméCorrespond à
emailUne forme simple utilisateur@hôte
alphaLettres uniquement
alpha_numericLettres et chiffres
alpha_dashLettres, chiffres, tiret bas, trait d'union
numericUn nombre entier ou décimal, éventuellement négatif
naturalChiffres uniquement (un entier non négatif)
urlUne URL http:// ou https://

Pourquoi l'application côté serveur compte

La validation côté client est une commodité - elle donne au visiteur un retour instantané sans aller-retour serveur. Ce n'est pas une barrière de sécurité : un client peut contourner chaque vérification côté client simplement en appelant l'API REST directement (par exemple avec curl ou fetch()), en court-circuitant entièrement le formulaire et son JavaScript. C'est pourquoi ->validation_required() et ->validation_pattern() réexécutent tous deux exactement les mêmes vérifications sur le serveur avant qu'une ligne ne soit jamais écrite. Voir la Référence de l'API REST pour le endpoint brut que ces vérifications protègent.

En pratique

$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();