te paso un ejemplo q quizás te sirva... es un formulario con dos campos (nomrbe y mail) que se envía a la misma pagina y si mail es vacio entonces te pone el mismo nombre que antes
Código HTML:
<?php
if ($_POST['action'] == "enviar") {
if ($_POST['mail'] != "") {
//todas las acciones que querés que realice
header("location:otrapagina.php");
exit;
} else {
$error = "Debe ingresar una cuenta de mail";
}
}
?>
<html><body>
<?php
if (isset($error()) { echo "<h1>".$error."</h1>"; }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="action" value="enviar">
<input type="text" name="nombre" value=<?php echo $_POST['nombre']; ?>">
<input type="text" name="mail" value="<?php echo $_POST['mail']; ?>">
<input type="submit" value="Enviar">
</form></body></html>