Recuerden en usar preferentemente exit; tras una llamada a cabeceras "location" ..
Código PHP:
<?
header("Location: gracias.htm");
exit;
?>
La cabecera header() de "Location" .. le "manda" al navegador la instrucción de que cambie la página que está viendo el cliente (el navegador) .. pero el flujo del proceso continua en el servidor (en el script PHP) ...
Creo que el 99.9% de ocasiones .. cuando enviamos esa cabecera al navegador es por qué queremos terminar la ejecución del script en curso y "lanzar" la ejecución de otro script (o página en general) .. He de ahí la instrucción
exit; que termina el proceso del script (PHP) en ese punto de nuestro código.
En este caso .. al ser HTML lo que hay a continuación tal vez no plantee problemas .. pero si fuera código PHP que ejecutar (tal vez una consulta a una BD .. una lectura/escritura a un archivo de texto plano .. manejo de sesiones .. etc) si que plantearía problemas pues dicho código se ejecutaria (atendiendo a los condicionales y estructuras de control que usemos ..)
Un saludo,