progetto di prova che mostra le macchine fiat e un form che permette di contattare
filippo.bertilotti
2024-05-03 c98ddbd9cb6c63f7effd45829e1ca9ff78a3a6b2
htdocs/contact.php
@@ -13,8 +13,10 @@
    $email = $_POST['email'] ?? '';
    $msg = '';
    function insertDataOnTable(mysqli $mysql, string $email, string $number) {
    /**
     *  Inserisce i dati trasmessi dal form ($email e $number) nella tabella
     */
    function insertDataOnTable(mysqli $mysql, string $email, string $number): bool {
        $esitoInserimento = false;
        $query = "INSERT INTO Contact (email, telefono) VALUES ('$email', '$number');";
        try {
@@ -26,7 +28,11 @@
        return $esitoInserimento;
    }
    function controlloErrori(string $email, string $number, array &$errorMsgs) {
    /**
     *  controlla se ci sono errori sulla digitazione dei dati messi nel form
     */
    function controlloErrori(string $email, string $number, array &$errorMsgs): bool {
        if(!is_numeric($number) || strlen($number) != 10) {
            $errorMsgs['number'] = 'Numero di telefono non corretto';
        }else {
@@ -44,24 +50,23 @@
        return $validazioneOk;
    }
    function controlloSpamEmail(mysqli $connection, string $email) {
        $esitoSpamEmail = false;
        $query = "SELECT email, dtm_richiesta FROM Contact WHERE email = '$email' AND dtm_richiesta BETWEEN CURDATE() AND DATE_SUB(CURDATE(), INTERVAL 1 DAY);";
    /**
     *  controlla se nelle 24 ore prima non sia stata messa nel campo email la stessa mail per evitarne lo spam
     */
    function controlloSpamEmail(mysqli $connection, string $email): bool {
        $spam = false;
        $query = "SELECT email, dtm_richiesta FROM Contact WHERE email = '$email' AND dtm_richiesta BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW();";
        
        $result = $connection->query($query);
        
        while ($row = $result->fetch_assoc()) {
            echo $row['email']."<br />\n";
        $rowcount=mysqli_num_rows($result);
        if ($rowcount > 0) {
            $spam = true;
        }
        return $esitoSpamEmail;
        return $spam;
    }
    
@@ -75,8 +80,14 @@
            } catch (Exception $e) {
                die($e->getMessage());
            }
            controlloSpamEmail($conn, $email);
            if(controlloSpamEmail($conn, $email)) {
                $smarty->display('avviso.tpl');
                exit;
            }
            $esitoInserimento = insertDataOnTable($conn, $email, $number);
            if($esitoInserimento == true) {
                $smarty->display('conferma.tpl');