Originariamente inviato da panecasareccio
Ciao camionistaxcaso,
grazie mille per la risposta!
Si, hai azzeccato in pieno cio' che devo fare.
Il punto piu' problematico e' che uno dei campi del form e' una grande area di testo in cui e' presente un messaggio, che puo' essere anche di 1000-2000 caratteri, quindi usare la query per ripresentarlo non e' il massimo dell'eleganza...
Tu come hai risolto la faccenda?
Grazie mille per l'aiuto, Giuseppe
Te la semplifico perchè non ti crederai che ti scrivo tutto il codice vero? 
1) form.php (file che contiene il modulo da inviare a control.php)
2) control.php (file che controlla i dati e li utilizza per farci il brodo
)
Nel file con il form metti delle variabili come valore di default degli input.
Se il modulo è stato inviato le valorizzi coi valori relativi delle variabili passate con POST.
Altrimenti se è la prima volta che visualizzi il modulo dai loro un valore nullo.
Nel file control.php esegui una serie di elseif coi controlli:
form.php
Codice PHP:
/*
Se il form non è ancora stato inviato le variabili prendono valore Null
così in locale eviti anche le notice
*/
if(!isset($_POST["inviato"]))
{
$nome = Null;
$cognome = Null;
$error1 = Null;
$error2 = Null;
}
/*
Se il form è stato inviato c'è stato un errore
quindi le variabili prendono valore da quelle passate con POST
*/
if(isset($_POST["inviato"]))
{
$nome = $_POST["nome"];
$cognome = $_POST["cognome"];
}
Non scordiamoci il modulo 
codice:
<form action="control.php" method="post">
<input type="hidden" name="inviato" value="inviato">
<table>
<tr>
<td bgcolor="<?php echo $error1;?>">
<input type="text" name="nome" value="<?php echo $nome; ?>">
<td bgcolor="<?php echo $error2;?>">
<input type="text" name="cognome" value="<?php echo $cognome; ?>">
<input type="submit" value="invia">
</table>
</form>
control.php
Codice PHP:
//inizializzo le var
$error_msg = "";
$error1 = "";
$error2 = "";
//questa mi serve x capire se si sono verificati errori
$p = 0;
if($_POST["nome"] == "")
{
//imposto il messaggio di errore
$error_msg = "Inserisci il nome";
$error1 = "#ff0000"; //colore HTML rosso
$p = 1; //c'è l'errore!
//reincludo il modulo
include("form.php");
}
elseif($_POST["cognome"] == "")
{
//imposto il messaggio di errore
$error_msg = "Inserisci il cognome";
$error2 = "#ff0000"; //colore HTML rosso
$p = 1; //c'è l'errore!
//reincludo il modulo
include("form.php");
}
//stampo il messaggio di errore (eventuale)
echo $error_msg;
//se non si sono verificati errori ($p=0) vado avanti
if($p == 0)
{
//faccio il brodo coi dati
brodo($_POST["nome"] , $_POST["cognome"]);
}
Il bello degli elseif è che se si verifica la condizione si ferma quindi ti da un errore alla volta.
Facci sapere ciao