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

}
?>