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 |   74 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 14 deletions(-)

diff --git a/htdocs/contact.php b/htdocs/contact.php
index e61585c..9a09725 100644
--- a/htdocs/contact.php
+++ b/htdocs/contact.php
@@ -6,28 +6,74 @@
     $smarty->setTemplateDir('../ihtml');
     $smarty->setCompileDir('../compile');
 
-    $error = [];
-    $number = $_GET['number'] ?? '';
-    $email = $_GET['email'] ?? '';
+    $errorMsgs = [];
+    $validazioneOk = true;
+
+    $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 {
+            $mysql->query($query);
+            $esitoInserimento = true;
+        } catch (Exception $e) {
+            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(!is_numeric($number) || strlen($number) != 10) {
-        $error['number'] = 'Numero di telefono non corretto';
-    }else {
-        $error['number'] = '';
-    }
+        if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+            $errorMsgs['email'] = 'Email non valida';
+        } else {
+            //$errorMsgs['email'] = '';
+        }
 
-    if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
-        $error['email'] = 'Email non valida';
-    } else {
-        $error['email'] = '';
+        $validazioneOk = count($errorMsgs) == 0;
+
+        return $validazioneOk;
     }
+    
+
+
+    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