Inizi le due pagine con:

session_start();


Nella pagina del controllo, se c'è un errore, prima di tornare alla pagina del form registri tutti i valori nella sessione in questo modo:

$_SESSION['campo1'] = $_POST['campo1'];
$_SESSION['campo2'] = $_POST['campo2'];

eccetera
Poi fai il redirect


Nella pagina del form metti come value nel campo 1 $_SESSION['campo1']
Codice PHP:
<input type="text" value="$_SESSION[campo1]name="campo1" /> 
Se non c'è nulla non scriverà nulla, altrimenti scriverà il valore memorizzato.


Nella pagina del controllo, infine, se tutto è corretto, fai un session_destroy();