De HTML .. el formulario lo envias a su proceso a donde indiques en tu action del mismo. Puede ser a un script PHP por separado o al mismo scirpt que pueda contener tu formulario + proceso.
Para PHP .. cuando envias varibles a un script, estas llegan por un Arraya asociado al método (method) que usastes (en tu caso) en el formulario: GET o POST.
Puedes usar un array para acomular los mensajes de error que se produzcan de tus validaciones.
Puedes usar un mismo script para todo sin necesidad de usar sesioens o cookies, si usas scripts por separado es necesario que uses cookies o sesiones para propagar esas variables de forma segura de uno a otro script (las de tu formulario hacia la validación-proceso).
Código PHP:
<?
// si se envió el formulario:
if (isset($_POST['submit'])){
// validación:
$errores=array();
$formulario=array();
if (empty($_POST['campo1'])){
$formulario['campo1']="";
$errores[]="Falta rellenar campo1";
} else {
// si no hay error se pre-establece su valor original
$formulario['campo1']=$_POST['campo1'];
}
if (empty($_POST['campo2'])){
$formulario['campo2']="";
$errores[]="Falta rellenar campo2";
} else {
// si no hay error se pre-establece su valor original
$formulario['campo2']=$_POST['campo2'];
}
// etc. validaciones ...
// Verificación si hay errores
if (count($errores) >0)){
// si hay errores .. se muestran recorriendo los valores de ese array.
foreach ($errores as $error){
echo $error."<br>";
}
} else {
// Proceso de tu formulario (variables) final ..
// Es importante que al terminar el proceso .. redirecciones a otro sítio (página/script) vía header("Location: pagina.tal")
}
}
?>
<form name="form1" method="post" action="">
campo 1:
<input name="campo1" type="text" id="campo1" value="<? echo $formulario['campo1'] ?>">
<br>
campo 2:
<input name="campo2" type="text" id="campo2" value="<? echo $formulario['campo2'] ?>">
<br>
<input type="submit" name="submit" value="Enviar">
</form>
Un saludo,