+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

rendere obbligatori campi form

Ultimo Messaggio di andrearufo il:
  1. #1
    User Newbie
    Data Registrazione
    Jan 2012
    Località
    Silvi
    Messaggi
    3

    rendere obbligatori campi form

    Salve a tutti, sono un nuovo iscritto al forum con un "problemino" che vorrei sottoporvi.
    Sono alle prese con un form per invio dati via mail da sito, in html + php.
    vorrei rendere obbligatori i campi da compilare ottenendo, in caso di mancata compilazione, un messaggio di errore o comunque un avviso.

    Allego il codice php:

    <?php

    /*INVIO DATI*/


    $destinatario = "mia@mail.it";

    $oggetto = "Invio dati e richiesta informazioni corso";

    $messaggio = "Nome: ".htmlentities($_POST['Nome'])."\n";
    $messaggio .= "Cognome: ".htmlentities($_POST['Cognome'])."\n";
    $messaggio .= "Giorno: ".htmlentities($_POST['Giorno'])."\n";
    $messaggio .= "Mese: ".htmlentities($_POST['Mese'])."\n";
    $messaggio .= "Anno: ".htmlentities($_POST['Anno'])."\n";
    $messaggio .= "Citta: ".htmlentities($_POST['Citta'])."\n";
    $messaggio .= "Provincia: ".htmlentities($_POST['Provincia'])."\n";
    $messaggio .= "Telefono: ".htmlentities($_POST['Telefono'])."\n";
    $messaggio .= "Email: ".htmlentities($_POST['email'])."\n";


    //$messaggio .= "Data: $data\n";
    //$messaggio .= "Citta': $citta\n";
    //$messaggio .= "Provincia: $provincia\n";
    //$messaggio .= "Email: $email\n";
    $messaggio .= $testo;

    $da = $email;
    $intestazioni = "From: $da";

    mail($destinatario,$oggetto,$messaggio,$intestazio ni);


    ?>


    Qualcuno puo' aiutarmi?

    Grazie

  2. #2
    User L'avatar di andrearufo
    Data Registrazione
    Oct 2011
    Località
    Latina
    Messaggi
    122
    Tutti i campi sono obbligatori? Se cosi` fosse basta un ciclo che controlla tutti i valori passati in $_POST:

    foreach($_POST as $item){
    if($item == ''){ //oppure !isset($item) credo vada bene
    echo "Errore, campo non compilato!";
    exit;
    }
    }

    Testa e vedi se funziona.
    Ci sono soluzioni piu` eleganti, dal controllo profondo ad alcune librerire javascript ma questo dovrebbe funzionare!
    Andrea Rufo

  3. #3
    User Newbie
    Data Registrazione
    Jan 2012
    Località
    Silvi
    Messaggi
    3
    grazie andrearufo per la risposta
    Si, vorrei rendere obbligatori tutti i campi

    devo inserire il ciclo in qualche punto particolare del codice?

  4. #4
    User L'avatar di andrearufo
    Data Registrazione
    Oct 2011
    Località
    Latina
    Messaggi
    122
    Anche se l'effetto potrebbe essere lo stesso io lo inserirei come primissimo passaggio dello script prima che i valori vengano assegnati alle variabili (ottimizzando lo script).

    Eventualmente aggiungi qualche filtro onde evitare iniezione di codife malevolo!
    Andrea Rufo

  5. #5
    User Newbie
    Data Registrazione
    Jan 2012
    Località
    Silvi
    Messaggi
    3
    ho provato a metterlo dopo la sfilza di $messaggio e... FUNZIONA!!

    scusa ma cosa intendi per "ottimizzare lo script"?

    e per filtri contro il codice malevolo? cosi' com'è corro qualche rischio?
    mi piacerebbe inserire un codice CAPTCHA... forse ti riferisci a quello??

    un ultima domanda... l'echo di risposta del tuo script...
    sono riuscito a centrarlo nella riga con un <center>...</center>
    ...posso anche cambiare carattere, dimensione, colore etc etc?
    magari centrarlo nella pagina?

    ti ringrazio per la disponibilità

  6. #6
    User L'avatar di andrearufo
    Data Registrazione
    Oct 2011
    Località
    Latina
    Messaggi
    122
    Bhe, Alberto, mi pare proprio che manchi nelle piu` minime nozione di PHP per comprendere quello che stai facendo.

    Per ottimizzare lo script intendo questo: per inizializzare variabili e per computare alcune operazioni (inizializza $message, aggiungi questo, aggiungi quello e quell'altro...) si occupa tempo e memoria del server che poi e` inutile se, dopo queste operazioni, si esegue il controllo che blocca il tutto. Sarebbe meglio mettere il controllo prima. Ma questo non compromette l'esecuzione.

    A meno di iniezione di codice, ovvero, senza la giusta protezione, un malintenzionato potrebbe inserire del codice nei campi che verrebbe male interpretato dal server mandando in crash lo script e avendo problemi di sicurezza (discorsi complessi). Si puo` evitare questo magari utilizzando dei filtri sui campi (addslashes, htmlentities, replace, ecc.): ti consiglio di leggere un manuale e la documentazione PHP.

    Il CAPTCHA serve solo in fase di inserimento (quindi nella pagina prima dello script che controlla e manda la mail) a vedere se e` unmano o macchina chi scrive nel form.

    Quello restituito dall'echo e` puro HTML e puoi scriverci i tag che vuoi e stilarlo anche in CSS: il tag <center> e` deprecato e non sarebbe da usare. Usa il tag <p> e stilalo in CSS per avere un risultato moderno, professionale e validato.
    Andrea Rufo

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.