si lo que necesitas es tener una página form.php y otro procesador.php y mostrar en el primero los errores que pueda ocurrir en el seundo entonces harías de la siguiente forma
estructura básica de procesador.php
Código PHP:
if(isset($_POST['dato']))
{
if(!empty($_POST['dato']))
{
//conexion y seleccion de BD
$dato=mysql_real_scape_strin($_POST['dato']);
$sql="INSERT INTO t(c) VALUES('$dato')";
mysql_query($sql,$conn);
if(mysql_affected_rows()>0)
{
header("Location:form.php?ok=se insertó");
exit;
}
else
{
header("Location:form.php?error=no se pudo insertar");
exit;
}
}
else
{
header("Location:form.php?error=no puede quedar en blanco");
exit;
}
}
else
{
header("Location:form.php");
exit;
}
en la página del form en la parte superior recuperas asi
Código PHP:
<?php
if(isset($_GET['ok']))
{
echo strip_tags($_GET['ok']);
}
if(isset($_GET['error']))
{
echo strip_tags($_GET['error']);
}
?>
<form action="procesador.php" method="post">
<input type="text" name="dato" />
<input type="submit" value="Insertar" />
</form>
aquí yo directamente le he pasado los mensajes por método get, pero puedes utilizar alguna función para codificar diicho mensaje y decodificar al momento de mostrarlo.
suerte.