From de6a28c63d18a72baa044d9385ed3d15afb40ef0 Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 12 Sep 2025 15:04:53 +0200 Subject: =?UTF-8?q?param=C3=A8tres=20SMTP=20en=20mode=20admin,=20possibili?= =?UTF-8?q?t=C3=A9=20d'utiliser=20deux=20formulaires=20sur=20la=20m=C3=AAm?= =?UTF-8?q?e=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/FormValidation.php | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'src/FormValidation.php') diff --git a/src/FormValidation.php b/src/FormValidation.php index 743cd13..b3a3793 100644 --- a/src/FormValidation.php +++ b/src/FormValidation.php @@ -1,6 +1,8 @@ validation_strategy){ - case 'email': + // bloc formulaire de contact + case 'email_send': $this->emailStrategy(); break; + case 'email_params': // paramètrage en mode admin + $this->emailParamsStrategy(); + break; + + // formulaires pages spéciales case 'create_user': $this->createUserStrategy(); break; @@ -34,6 +42,7 @@ class FormValidation case 'password_update': $this->passwordUpdateStrategy(); break; + default: http_response_code(500); // c'est un peu comme jeter une exception echo json_encode(['success' => false, 'error' => 'server_error']); @@ -94,7 +103,7 @@ class FormValidation $this->errors[] = 'missing_fields'; } - if(!filter_var(trim($this->data['email']), FILTER_VALIDATE_EMAIL)){ + elseif(!filter_var(trim($this->data['email']), FILTER_VALIDATE_EMAIL)){ $this->errors[] = 'bad_email_address'; } @@ -102,6 +111,26 @@ class FormValidation $this->data['email'] = htmlspecialchars(trim($this->data['email'])); $this->data['message'] = htmlspecialchars($this->data['message']); } + private function emailParamsStrategy(): void + { + if(!isset($this->data['id'], $this->data['what_param'], $this->data['value'], $this->data['hidden']) + || !empty($this->data['hidden'])){ + $this->errors[] = 'missing_fields'; + } + + elseif($this->data['value'] !== ''){ + if(!in_array($this->data['what_param'], ['smtp_host', 'smtp_secure', 'smtp_username', 'smtp_password', 'email_dest'])){ + $this->errors[] = 'unknown_parameter'; + } + elseif($this->data['what_param'] === 'smtp_username' || $this->data['what_param'] === 'email_dest'){ + if(!filter_var($this->data['value'], FILTER_VALIDATE_EMAIL)){ + $this->errors[] = 'invalide_email_address'; + } + } + } + + // htmlspecialchars exécutés à l'affichage dans FormBuilder + } private function createUserStrategy(): void { $this->captchaValidate(); -- cgit v1.2.3