Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    7

    Problema verifica campi vuoti PHP

    Salve a tutti.
    Dunque, io ho un problemaccio con un form php.
    In due righe, vorrei semplicemente far sì che nel caso in cui uno o più campi di un form vengano lasciati vuoti o risultino con valore pari a 0, lo script restituisse, restando sempre nella stessa pagina del form da complilare, un piccolo div compreso nella pagina entro il quale si prega di correggere i campi ove è stato immesso 0 oppure che sono stati omessi.

    La struttura del progetto è composta da due file.
    Il file1 è composto principalmente da un modulo che tramite text-input raccoglie le info necessarie ai calcoli, effettuati nel file2 dove i calcoli vengono stampati a video.

    Spero di essere stato chiaro nel mio intento, se avete bisogno di codice o altro non c'è problema..
    Mi affido a voi, mi ci sto sbattendo ma non so come fare.

    P.S. ho fatto un piccolo script che però non riesco a integrare nel file1, poichè non so come fare per stampare a video l'errore nel caso in cui venga omesso un campo o sia pari a zero, oppure nel caso sia tutto ok, non so come far proseguire lo script DIRETTAMENTE verso il file2.
    Posto il piccolo script di verifica, denominato controllo.php

    codice:
    <?php
    $pv=$_POST['pv'];
    $pl=$_POST['pl'];
    $grasso=$_POST['grasso'];
    $pd=$_POST['pd'];
    $gravidanza=$_POST['gestazione'];
    
    $cont="<div class='control'> $err </div>";
    
    
    if ( $pv == "" or $pv == 0 or $pl == "" or $pl == 0 or $grasso == "" or $grasso == 0 or $pd == "" or $pd == 0 or $gravidanza == "" or $gravidanza == 0) {
    	header('Location: modulo.php') ;
    } else {
    	header('Location: elaboro.php');
    }
    
    if ($pv == "" or $pv == 0) {
    	$err="●Inserisci il peso vivo
    ";
    	print "$err";
    } if ($pl == "" or $pl == 0) {
    	$err="●Inserisci Prod. Latte / dì
    ";
    	print "$err";
    } if ($grasso == "" or $grasso == 0) {
    	$err="●Inserisci % Grasso
    ";
    	print "$err";
    } if ($pd == "" or $pd == 0) {
    	$err="●Inserisci % Proteine
    ";
    	print "$err";
    } if ($gravidanza == "" or $gravidanza == 0) {
    	$err="●Inserisci mese di gestazione
    ";
    	print "$err";
    }
    
    ?>
    <html>
    </html>
    Ovvio dire che tutto sto papiello non va'.
    Aspetto novità.. Grazie a tutti.

  2. #2
    In $cont="<div class='control'> $err </div>"; Usi la variabile $err prima di inizializzarla

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    7
    Non so come impostare la cosa.. Mi farebbe piacere capire qualcosa in più!

  4. #4
    Ok, piccolo esempio

    Codice PHP:
    <?php

    //una funzione che controlla i campi obbligatori
    function campiObbligatori($array,$messaggio){
        
    $array=explode(",",$array);
        foreach(
    $array as $value){
            if(empty(
    $_POST[$value])){
                
    errore_messaggio($messaggio);
            }
        }
        
        return;
        
    }

    //una funzione che emette un messaggio di errore tramita javascript in caso di campi obblogatori non compilati
    function errore_messaggio($msg){
         echo 
    "<SCRIPT>alert(\"attenzione: $msg\");history.go(-1)</SCRIPT>";
         exit();
    }

    //se non ho ancora inviato il form
    if(!isset($_POST['form1'])
    {
    <
    form name="form1" action="" method="post" >
    <
    input type="hidden" name="campi_obbligatori" value="grasso,gestazione">
    <
    input type="text" name="grasso" value="valore" />
    <
    input type="text" name="gestazione" value="valore" />
    </
    form>
    }
    //altrimenti
    else
    {
    //controlla i campi obbligatori
    campiObbligatori($_POST['campi_obbligatori'], "Devi compilare i campi obbligatori");

    //altre operazioni

    }
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    7
    Non funge, l'ho adattato al mio script ma non và...
    Poi quello che intendevo fare, è praticamente far si che nel caso in cui i campi risultassero vuoti, allora l'utente non avrebbe potuto andare avanti al file2, ma anzi, fosse rimasto al file1 dove venivano stampati a video gli errori internamente alla pagina.. in un semplice div.

  6. #6
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    perchè non usi jquery?
    hai una gestione più semplificata degli errori e puoi impostare anche specifici testi in un detrminato div, come ad esempio in caso di errore

    Oppure, almeno io faccio sempre così:
    - fai un controllo js al submit del form, se non va bene qualcosa un alert e il form non viene invato
    - fai un controllo anche lato server, magari in una seconda pagina, con una gestione errori; se qualcosa va storto rimandi alla pagina chiamante portandoti dietro eventuali campi immessi nei form in modo che l'utente non debba inserire tutto da zero

  7. #7
    Hai ragione, c'erano una serie di errori, adesso funziona.
    Per le funzioni che richiedi devi usare javascript. C isono tanti plugin jquery già pronti.

    Codice PHP:
    <?php

    //una funzione che controlla i campi obbligatori
    function campiObbligatori($array,$messaggio){
        
    $array=explode(",",$array);
        foreach(
    $array as $value){
            if(empty(
    $_POST[$value])){
                
    errore_messaggio($messaggio);
            }
        }
        
        return;
        
    }

    //una funzione che emette un messaggio di errore tramita javascript in caso di campi obblogatori non compilati
    function errore_messaggio($msg){
         echo 
    "<SCRIPT>alert(\"attenzione: $msg\");history.go(-1)</SCRIPT>";
         exit();
    }

    //se non ho ancora inviato il form
    if(!isset($_POST['invia']))
    {
    echo
    "    
    <form name=\"form1\" action=\"\" method=\"post\" >
    <input type=\"hidden\" name=\"campi_obbligatori\" value=\"grasso,gestazione\">
    <input type=\"text\" name=\"grasso\" value=\"\" />
    <input type=\"text\" name=\"gestazione\" value=\"\" />
    <input type=\"submit\" name=\"invia\" value=\"Invia\">
    </form>"
    ;
    }
    //altrimenti
    else
    {
    //controlla i campi obbligatori
    campiObbligatori($_POST['campi_obbligatori'], "Devi compilare i campi obbligatori");

    //altre operazioni

    }
    ?>

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.