This repository has been archived on 2026-04-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Project_BDE/app/utils/validate.php

21 lines
928 B
PHP

<?php
function str_trim(string $s): string { return trim($s); }
function is_email(string $s): bool { return (bool)filter_var($s, FILTER_VALIDATE_EMAIL); }
function min_len(string $s, int $n): bool { return mb_strlen($s) >= $n; }
function sanitize(string $s): string { return filter_var($s, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES); }
function validate(array $data, array $rules): array {
$errors = [];
foreach ($rules as $field => $fns) {
$value = $data[$field] ?? '';
foreach ($fns as $fn) {
[$name, $arg] = array_pad(explode(':', $fn, 2), 2, null);
$ok = true;
if ($name === 'required') $ok = ($value !== '' && $value !== null);
elseif ($name === 'email') $ok = is_email($value);
elseif ($name === 'min') $ok = min_len($value, (int)$arg);
if (!$ok) { $errors[$field][] = $fn; }
}
}
return $errors;
}