From 40302288abc170ebfd2b7ffacb334768f77b8698 Mon Sep 17 00:00:00 2001 From: filippo.bertilotti <filippobertilotti@gmail.com> Date: Tue, 30 Apr 2024 12:10:03 +0200 Subject: [PATCH] refactor --- htdocs/contact.php | 71 ++++++++++++++++++++++++++--------- 1 files changed, 53 insertions(+), 18 deletions(-) diff --git a/htdocs/contact.php b/htdocs/contact.php index c2f5398..9a09725 100644 --- a/htdocs/contact.php +++ b/htdocs/contact.php @@ -6,39 +6,74 @@ $smarty->setTemplateDir('../ihtml'); $smarty->setCompileDir('../compile'); - $error = []; - $number = $_GET['number'] ?? ''; - $email = $_GET['email'] ?? ''; + $errorMsgs = []; + $validazioneOk = true; - function databaseConnect() { + $number = $_POST['number'] ?? ''; + $email = $_POST['email'] ?? ''; + $msg = ''; + + + function insertDataOnTable(mysqli $mysql, string $email, string $number) { + $esitoInserimento = false; + $query = "INSERT INTO Contact VALUES (NULL, '$email', '$number');"; try { - $conn = new mysqli('127.0.0.1', 'root', ''); + $mysql->query($query); + $esitoInserimento = true; } catch (Exception $e) { - die($e->getMessage()); + echo $e->getMessage(); } + return $esitoInserimento; } + function controlloErrori(string $email, string $number, array &$errorMsgs) { + if(!is_numeric($number) || strlen($number) != 10) { + $errorMsgs['number'] = 'Numero di telefono non corretto'; + }else { + //$errorMsgs['number'] = ''; + } + + if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { + $errorMsgs['email'] = 'Email non valida'; + } else { + //$errorMsgs['email'] = ''; + } - if(!is_numeric($number) || strlen($number) != 10) { - $error['number'] = 'Numero di telefono non corretto'; - }else { - $error['number'] = ''; - } + $validazioneOk = count($errorMsgs) == 0; - if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { - $error['email'] = 'Email non valida'; - } else { - $error['email'] = ''; + return $validazioneOk; } - databaseConnect(); + + + if($_SERVER['REQUEST_METHOD'] === 'POST') { + $validazioneOk = controlloErrori($email, $number, $errorMsgs); + + if($validazioneOk) { + try { + $conn = new mysqli('127.0.0.1', 'root', '', 'contact_db'); + } catch (Exception $e) { + die($e->getMessage()); + } + + $esitoInserimento = insertDataOnTable($conn, $email, $number); + + if($esitoInserimento == true) { + $smarty->display('conferma.tpl'); + exit; + } + } + } $smarty->assign('cellNumber', $number); $smarty->assign('email', $email); - - $smarty->assign('error', $error); + $smarty->assign('formMsg', $msg); + + $smarty->assign('errorMsgs', $errorMsgs); $smarty->display('contact.tpl'); + + ?> \ No newline at end of file -- Gitblit v1.8.0