Ciao, dovrei validare un checkbox per la GDPR. Il checkbox deve essere ovviamente flaggato per validare il form, ma non so come fare. Questo il mio codice:

Form
Codice PHP:
<form action="<?php basename($_SERVER['PHP_SELF']) ?>" method="post" id="contactForm">  <ul>        <li><label for="name">Nominativo: (*)</label>        <input type="text" name="nome" id="nome" tabindex="1"           value="<?php if ( isset( $missing ) && isset($nome) ) echo $nome?>"           class="<?php if (isset( $missing ) && in_array('nome',$missing))            echo 'error';           ?>"/>      </li>      <li><label for="email">Email: (*)</label>    <input type="text" name="email" id="email" tabindex="2"        value="<?php if ( isset( $missing ) && isset($email) ) echo $email?>"         class="<?php if (isset( $missing ) && in_array('email',$missing))            echo 'error'?>"/> </li>      <li><label for="tel">Telefono: (*)</label>         <input type="text" name="tel" id="tel" tabindex="3"           value="<?php if ( isset( $missing ) && isset($tel) ) echo $tel?>"           class="<?php if (isset( $missing ) && in_array('tel',$missing))            echo 'error';           ?>"/>      </li>      <li><label for="societa">Societa':</label>         <input type="text" name="societa" id="societa" tabindex="4"           value="<?php if ( isset( $missing ) && isset($societa) ) echo $societa?>"           class="<?php if (isset( $missing ) && in_array('societa',$missing))            echo 'error';           ?>"/>      </li>      <li><label for="subject">Oggetto: (*)</label>         <input type="text" name="subject" id="subject" tabindex="5"           value="<?php if ( isset( $missing ) && isset($subject) ) echo $subject?>"           class="<?php if (isset( $missing ) && in_array('subject',$missing))            echo 'error';           ?>"/>      </li>      <li><label for="message">Messaggio: (*)</label>        <textarea name="messaggio" id="messaggio" rows="8" cols="40" tabindex="6"    class="<?php if (isset( $missing ) && in_array('messaggio',$missing))            echo 'error';           ?>"><?php if ( isset( $missing ) && isset($messaggio) ) echo $messaggio?></textarea>      </li>     <li><label for="privacy"> (*)</label>        <input type="checkbox" name="privacy" id="privacy" tabindex="7"           value="<?php if ( isset( $missing ) && isset($privacy) ) echo $privacy?>"           class="<?php if (isset( $missing ) && in_array('privacy',$missing))            echo 'error';           ?>"/>    Confermo di avere letto, compreso e accettato i termini e le condizioni della <a href="http://www.iubenda.com/privacy-policy/7952">privacy policy</a>      </li>        <li>   <input type="submit" name="submit" id="submit" value="INVIA" class="button" tabindex="7" />  </li>  </ul></form>
Pagina contatti
Codice PHP:
<?php            require_once 'settings.php';            if(isset($_POST['submit'])){               foreach ($_POST as $key => $value){                //elimina eventuali spazi aggiuntivi                $temp = $value ? trim($value) : '';                //se ï¿½ richiesta ma vuota aggiungila all'array missing                if(!strlen ($temp) && in_array($key, $required)){                  array_push($missing, $key);                }                //se il campo ï¿½ aspettato, setta la variabile associata                elseif(in_array($key, $expected)){                  ${$key} = htmlentities($temp); //in questo caso crea $nome, $email, $tel, $societa, $subject, $messaggio, $privacy                }              }              if ( empty($missing) ){                //Se l'array missing ï¿½ vuoto, vuol dire che sono stati inseriti i valori                //obbligatori. Costruisco il messaggio                    $contenuto_email = "Nome: $nome\n\n"; //Queste variabili sono create nel passaggio precedente                $contenuto_email .= "Email: $email\n\n";                $contenuto_email .= "Tel: $tel\n\n";                $contenuto_email .= "Societ�: $societa\n\n";                $contenuto_email .= "Oggetto: $subject\n\n";                $contenuto_email .= "Messaggio:\n $messaggio\n\n";                $contenuto_email .= "Privacy Policy: $privacy\n\n";                //limita la lunghezza a 70 caratteri per la compatibilit�                $contenuto_email = wordwrap($contenuto_email,70);                $email=$email.",info@miaemailit";            //invia l'email                    $mail_sent = mail($email,$oggetto,$contenuto_email, 'From: '.$email);                $info_message = '<h3 class="ok_box">' . $info_mail_sent . '</h3>';                if($mail_sent){                  //Se l'email viene inviata l'array missing non serve pi� quindi lo svuoto                  unset($missing);                }              }            }            //se non sono stati immessi campi obbligatori            if ( isset( $_POST['submit'] ) && isset($missing) && !empty($missing)) :               $info_message = '<p class="error_box">' . $error_missing_fields . '</p>';            elseif ($_POST['submit'] && !$mail_sent) :               //se ci sono stati problemi con l'invio della mail da parte del server               $info_message = '<p class="error_box">' . $error_mail_server . '</p>';            endif;                                       //Mostra una notifica sia d'errore che di conferma               if ( isset( $info_message ) && strlen( $info_message ) ) echo $info_message;               //Include il form               require_once 'form.php';
             
?>
Settings
Codice PHP:
<?phpini_set('display_errors''On');ini_set('error_reporting'E_ALL & ~E_NOTICE);//email del destinatario del form$destinatario = 'info@miaemail.it';//oggetto dell'email inviata$oggetto = 'Mail dal modulo contatti sito';

//Messaggio d'errore per campi mancanti//Error message for missing fields$error_missing_fields= 'Per favore, completate tutti i campi del form indicati';//Messaggio d'errore del server mail//Error message for mail server$error_mail_server = 'Siamo spiacenti. Si &egrave; verificato un errore e     l\'email non &egrave; stata inviata. Riprovate pi&ugrave; tardi.';//Messaggio di conferma invio mail//Info message for correct mail sent$info_mail_sent = 'L\'email ï¿½ stata inviata correttamente!.';

/* Se il form ï¿½ stato inviato, elenca i campi che ci si aspetta di ricevere.   Evita che qualcuno possa aggiungere dei campi non previsti */
$expected = array('nome','email','tel','societa','subject','messaggio','privacy');//imposta i campi obbligatori$required = array('nome','email','tel','subject','messaggio','privacy');//crea un array vuoto per i campi mancanti$missing = array();   ?>