Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513

    validazione dati da form

    Ciao a tutti. io ho un semplice form per l'invio mail. Il codice con cui effettuo l'invio è il seguente:



    Codice PHP:
    /* destinatari */
                              
    $destinatari "io - Info <info@io.it>";
                              
    /* oggetto */
                              
    $oggetto "Info";
                              
    $messaggio $_POST["nome"]."\n";
                              
    $messaggio.= $_POST["cognome"]."\n";
                              
    $messaggio.= $_POST["citta"]."\n";
                              
    $messaggio.= $_POST["cap"]."\n";
                              
    $messaggio.= $_POST["via"]."\n";
                              
    $messaggio.= $_POST["tel"]."\n";
                              
    $messaggio.= $_POST["richiesta"]."\n";
                              
    $mittente.= $_POST["email"]."\n";

                              
    # controllo campi compilati
                              
    if (( $nome == "" ) || ( $cognome == "" ) || ( $tel == "" ) || ( $email == "" ) || ( $richiesta == "" ) || ( $accetto == "" )) {
                              echo 
    "<h2>Errore!</h2>
    Deve compilare tutti i campi contrassegnati con l'asterisco

                              La preghiamo di correggere. Grazie"
    ;
                              exit;
                              }
                              
    # controllo campo telefono compilato con numeri
                              
    if (!is_numeric($tel)) {
                              echo 
    "<h2>Errore!</h2>
    Il campo telefono può contenere solamente caratteri numerici

                              La preghiamo di tornare indietro e correggere. Grazie"
    ;
                              exit;
                              }
                              
    # controllo campo email - email valida
                              
    if (!ereg("^([a-z0-9_.-])+@(([a-z0-9_-])+\.)+[a-z]{2,6}$",$email)){
                              echo 
    "<h2>Errore!</h2>
    Deve inserire una email valida

                              La preghiamo di tornare indietro e correggere. Grazie"
    ;
                              exit;
                              }
                              else

                              
    /* ed infine l'invio */
                              
    if(mail($destinatari$oggetto$messaggio"From: $mittente\r\n"))
                              echo 
    "<h2>Messaggio inviato con successo!</h2>

    Redirect in corso...</p>
    <img src=\"images/loading.gif\" title=\"redirect\" alt=\"redirect in corso\" />"
    ;
                              else
                              echo 
    "

    Si è verificato un errore durante l'invio!</p>"

    volevo chiedervi come posso aggiungere al controllo:

    Codice PHP:
    # controllo campo telefono compilato con numeri
                              
    if (!is_numeric($tel)) 
    qualcosa che faccia controllare se anche $cap è composto esclusivamente da caratteri numerici.

    Inoltre volevo chiedere un parere: solitamente si fanno altri controlli in un form? se si quali (e come si può fare)?

    Grazie mille a chi potrà aiutarmi!!

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    vuoi verificare se $cap sono tutti numeri dici?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513
    si, perchè ho questa funzione che verifica se un valore è composto solamente da numeri:
    Codice PHP:
    # controllo campo telefono compilato con numeri
                              
    if (!is_numeric($tel)) {
                              echo 
    "<h2>Errore!</h2>
    Il campo telefono può contenere solamente caratteri numerici

                              La preghiamo di tornare indietro e correggere. Grazie"
    ;
                              exit;
                              } 
    ma non riesco a dirgli di controllare, oltre ad $tel anche $cap .
    Poi son ben accetti ogni tipo di suggerimenti

    Grazie!!

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    # controllo campo telefono compilato con numeri
                              
    if (!is_numeric($tel) || !is_numeric($cap)) {
                              echo 
    "<h2>Errore!</h2>
    Il campo telefono e cap possono contenere solamente caratteri numerici

                              La preghiamo di tornare indietro e correggere. Grazie"
    ;
                              exit;
                              } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513
    Grazie!! Per il resto...credi sia necessario qualche altro controllo??

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513
    up

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513
    nessuno ha suggerimenti?

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
                              $oggetto "Info";
                              
    $messaggio $_POST["nome"]."\n";
                              
    $messaggio.= $_POST["cognome"]."\n";
                              
    $messaggio.= $_POST["citta"]."\n";
                              
    $messaggio.= $_POST["cap"]."\n";
                              
    $messaggio.= $_POST["via"]."\n";
                              
    $messaggio.= $_POST["tel"]."\n";
                              
    $messaggio.= $_POST["richiesta"]."\n";
                              
    $mittente.= $_POST["email"]."\n"
    beh potresti fare un trim di ogni campo per togliere eventuali spazi bianchi prima e dopo ogni dato

    Codice PHP:
                              $oggetto "Info";
                              
    $messaggio trim($_POST["nome"])."\n";
                              
    $messaggio.= trim($_POST["cognome"])."\n";
                              
    $messaggio.= trim($_POST["citta"])."\n";
                              
    $messaggio.=trim($_POST["cap"])."\n";
                              
    $messaggio.= trim($_POST["via"])."\n";
                              
    $messaggio.= trim($_POST["tel"])."\n";
                              
    $messaggio.= trim($_POST["richiesta"])."\n";
                              
    $mittente.= trim($_POST["email"])."\n"
    inoltre se deisideri archiviare la mail in un db sarebbe opportuno fare

    $messaggio = mysql_escape_string(trim($_POST["nome"]))."\n";

    per il resto tutto ok
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    513
    no no, le mail mi arrivano su outlook soltanto...pensavo più al fatto che mi è capitato spesso di sentir parlare di precauzioni contro eventuali script "maligni" inseriti nei post...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.