El tema de las cabeceras "no caché" en este caso no sé que tanto resuelven el problema . .una cosa es el caché de las páginas y otras los datos que quedan en "POST" (que es el problema principal que tienes).
Para estos casos lo que se debe hacer (o se resuelve el problema perfectamente) es:
formulario -> envia datos a procesar.php -> se procesa en procesar.php y al terminar el proceso NO se muestra ningú mensaje de error o de exito en ese proceso sino que redireccionamos a otro script, así "perdemos" todo lo que en "POST" el navegador almacena por si es requerido (reenviado).
Sería algo así:
formulario.php
... envia datos a procesar a procesar.php
procesar.php Código PHP:
<?
// procesos ...
if ($porceso=="OK"){
header("Location: exito.php");
exit;
} else {
header ("Location: error.php");
exit;
}
?>
No es necesario que uses un par de scripts para el "fomulario" y el "proceso PHP" .. podrían estar en un mismo script, pero entendiendo que son "dos" procesos por separados .. así que las redirecciones sería a si mismo pero igual deberían existir.
Un saludo,