Hola:
Ya se ha tratado este tema en innumerables ocasiones. Normalmente el proceso se divide en dos:
-
formulario.html que envía a proceso_formulario.php.
-
proceso_formulario.php que inserta comentario y muestra mensaje de ok!.
Al actualizar el segundo, se volverán a procesar los datos del formulario.... es lógico.
¿La solución?
Separar el segundo proceso en dos. Con esto, nos quedarían tres:
-
formulario.html que envía a proceso_formulario.php
-
proceso_formulario.php que inserta el comentario y redirecciona a mensaje.html
-
mensaje.html que muestra el mensaje de ok!
Así, al actualizar el tercero, ya no se volverán a procesar los datos del formulario.
Ojo: Puedes poner las tres partes en archivos separados o no. también podría estar todo en un solo archivo. Lo importante es que controles el flujo de ejecución (con "if", o "switch") y que no se ejecuten 2 y 3 juntos.
Saludos