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']
Se non c'è nulla non scriverà nulla, altrimenti scriverà il valore memorizzato.Codice PHP:
<input type="text" value="$_SESSION[campo1]" name="campo1" />
Nella pagina del controllo, infine, se tutto è corretto, fai un session_destroy();