Publiczna aplikacja fdmtech.pl: renderer CMS, formularz audytu, szablony i logotypy
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FDMTech;
|
||||
|
||||
final class Inquiry
|
||||
{
|
||||
public static function validate(array $input): array
|
||||
{
|
||||
$values = [];
|
||||
$errors = [];
|
||||
foreach (['name' => 160, 'email' => 254, 'company' => 200, 'phone' => 60, 'message' => 10000, 'source' => 160] as $field => $limit) {
|
||||
$raw = $input[$field] ?? ($field === 'source' ? 'audit' : '');
|
||||
if (!is_string($raw) || !mb_check_encoding($raw, 'UTF-8')) {
|
||||
$errors[$field] = 'Wpisz poprawną wartość.';
|
||||
$values[$field] = '';
|
||||
continue;
|
||||
}
|
||||
$value = trim(str_replace(["\r\n", "\r"], "\n", $raw));
|
||||
$values[$field] = $value;
|
||||
if (mb_strlen($value) > $limit || preg_match('/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/', $value)) {
|
||||
$errors[$field] = 'Przekroczono limit długości lub użyto niedozwolonych znaków.';
|
||||
} elseif (in_array($field, ['name', 'email', 'message'], true) && $value === '') {
|
||||
$errors[$field] = 'To pole jest wymagane.';
|
||||
}
|
||||
}
|
||||
if (!filter_var($values['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$errors['email'] = 'Wpisz poprawny adres e-mail.';
|
||||
}
|
||||
$values['consent'] = ($input['consent'] ?? null) === '1' ? '1' : '';
|
||||
if ($values['consent'] === '') {
|
||||
$errors['consent'] = 'Zgoda na kontakt w sprawie zapytania jest wymagana.';
|
||||
}
|
||||
return [$values, $errors];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user