Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255

    Controllo inserimento dati da un form

    Salve a tutti!

    Vorrei fare un controllo dei dati ricavati da un form che, nel caso vengano lasciati vuoti, stampa un messaggio di errore e annulla la query di inserimento nel database.

    A me è venuto in mente di usare l'istruzione if-elseif-else dove per ogni variabile che mi sono ricavato, se è vuota stampo il messaggio d'errore, pero non so qualè la sintassi per definire che la variabile è vuota...

    Cosa mi suggerite?

    Grazie a tutti!


  2. #2
    Usa una funzioncina del genere adattata ai tuoi campi....
    per ogni campo fai il controllo base che è empty(nomecampo)... occhio che da errore non solo se la variabile non ha valore o è una stringa vuota, ma anche se contiene il valore 0.. quindi se 0 è un valore ammissibile per qualche campo, ti conviene usare un sistema diverso epr quel campo...
    in più per alcuni campi puoi voler fare controlli aggiuntivi.. in ogni caso la funzione fa tutti i controlli e restituisce gli errori.. se il valore restituito dalla funzione è una stringa vuota (quindi la funzione restituisce false... la stringa vuota è un false per php) allora non ci sono errori.. altrimenti hai direttamente la lista di tutti gli errori riscontarti...

    Codice PHP:
    //restituisce false se non ci sono errori, altrimenti una stringa contenente i messaggi di errore
    function check_form()
    {
       
    $err='';
       if(empty(
    $_POST['nome']))
           
    $err .= 'Nome è un campo obbligatorio
    '
    ;
       if(empty(
    $_POST['cognome']))
           
    $err .= 'Cognome è un campo obbligatorio
    '
    ;
       if(empty(
    $_POST['indirizzo']))
           
    $err .= 'Indirizzo è un campo obbligatorio
    '
    ;
       if(empty(
    $_POST['civico']))
           
    $err .= 'Il civico è un campo obbligatorio
    '
    ;
       if(empty(
    $_POST['cap']))
           
    $err .= 'Il cap è un campo obbligatorio e dev\'essere un numero
    '
    ;
       if(empty(
    $_POST['comune']))
           
    $err .= 'Comune è un campo obbligatorio
    '
    ;
       if(empty(
    $_POST['email']) || !is_mail($_POST['email']))
           
    $err .= 'L\\\'indirizzo email inserito non è corretto
    '
    ;
       if(empty(
    $_POST['telefono']) || !(is_numeric($_POST['telefono'])))
           
    $err .= 'Il numero di telefono è un campo obbligatorio e dev\\\'essere esclusivamente numerico
    '
    ;
       return 
    $err;





  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255
    Grazie mille!

    Alla prossima!


  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Leggendo questo post mi sono ricordato di una cosa strana (almeno per me lo è ) che mi era capitata.
    Se voglio accertarmi che l'utente inserisca qsa, oltre ad empty uso anche trim per eliminare eventuali spazi.
    Il problema è questo:

    se scrivo una cosa del genere:

    $nome = trim($_POST['nome']);
    if (empty($nome))
    tutto fila liscio.

    Se invece faccio:
    if (empty(trim($_POST['nome'])))
    mi restituisce un bel fatal error
    Can't use function return value in write context in

    Perchè?

  5. #5
    penso sia per questo:

    Nota: Poichè questo è un costrutto del linguaggio e non una funzione, non può essere chiamato con le variabili funzione

    dal manuale

    ad ogni modo... hum.. sicuro che se no trimmi gli spazi non li considera stringa vuota? :master:

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da }gu|do[z]{®©
    ad ogni modo... hum.. sicuro che se no trimmi gli spazi non li considera stringa vuota? :master:
    Ciao guidoz. Scusa ma non ho capito la tua domanda.

  7. #7
    Originariamente inviato da nicola75ss
    Ciao guidoz. Scusa ma non ho capito la tua domanda.
    nulla.. mi chiedevo se davvero è il caso di usare trim o se empty non cosiderà già lui come vuota una stringa con soli spazi.. tutto lì

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ah,ora ho capito.
    Ma se non inserisci niente e premi solo lo spazio per la funzione empty è come che tu qualcosa l'abbia inserito. O mi sbaglio?

  9. #9
    Originariamente inviato da nicola75ss
    Ah,ora ho capito.
    Ma se non inserisci niente e premi solo lo spazio per la funzione empty è come che tu qualcosa l'abbia inserito. O mi sbaglio?
    chiedevo questo

    Ad intuito pensavo che la empty fosse "intelligente" e si diversificasse dalla isset() perchè oltre a controllare se la variabile è settata controlla anche se ha un valore non ullo.. e nel 99% dei casi una serie di spazi io lo considererei un valore nullo

    Ma probabilemnte hai ragione te.. mi farò una my_empty che trimma anche

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ho appena controllato e premendo lo spazio con la sola funzione empty mi considera il campo pieno. Non è tanto intelligente.

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.