Alertar o usuário sobre o que foi que aconteceu é sempre importante. Senão acontece de o cara apertar em salvar e não saber se foi salvo ou se deu m... em algum local. Acontece várias vezes de um mesmo arquivo de processamento receber dados de formulários diversos. Como fazer para devolver a resposta para a página que enviou? A resposta é o comando getenv('HTTP_REFERER'). Assim, normalmente eu faço o seguinte. A página de processamento ficará mais ou menos assim: try{ // tenta salvar $nObjeto = new NObjeto(); $nObjeto->salvar($_POST); } catch(Exception $e){ // se não deu certo devolve para a página que pediu para // salvar com os erros passados via GET header('Location: '.getenv('HTTP_REFERER').'&erro='.$e->getCode().'&mensagem='.$e->getMessage()); } Se o getenv não funcionar como deveria utilize o $_SERVER['HTTP_REFERER'].
Vou postando aqui tudo que acho legal de programação que vou aprendendo e os divertidos textos em geral que recebo por email.