Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222

    Validare checkbox in form

    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();   ?>
    Si fanno sempre nuove scoperte

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    3 cose:

    1) Prima di inviare del codice, visualizza SEMPRE l'anteprima e riformattalo se serve, così non si capisce una mazza
    2) Spiega cosa e come non funziona, postare il codice e dire "non funziona" porterà chi legge a chiudere la pagina per passare oltre
    3) Leggi il regolamento della sezione

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E' vero l'impaginazione è molto importante. Com'è adesso mica ci do' un'occhiata.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.