Con la pregunta que nos haces es imposible saber qué pueda estar pasando, al menos a ciencia cierta. Todo lo más que se pueden hacer son conjeturas, pues no indicas el código del formulario ni el código de tu página PHP ni nada.
Pero por lo que dices que se muestra el código PHP de la página pienso que puede ser alguna de estas cosas:
- Estas abriendo el código PHP con la etiqueta antigua.
En muchos artículos abrimos el código PHP así:
<?
// Esto sería código PHP abierto de una forma antigua
?>
Mientras que actualmente se abre así el código PHP:
<?php
// Esto sería código PHP abierto correctamente
?>
La forma antigua de abrir código PHP (solamente con <?
) se puede activar opcionalmente dependiendo de la configuración del servidor. Pero lo normal es que ya no esté activada esa apertura de código.
-
La otra opción factible que se me ocurre es que estés invocando un archivo .html al enviar el formulario, en lugar de un archivo .php. Si fuera un archivo .html el servidor no procesará los códigos PHP que encuentre.
-
El tema de un formuario que abre la misma página es algo más o menos normal, puede que lo quieras así o puede que no. De todos modos, para revisar la página a la que se está enviando el formulario tienes que revisar el atributo action de la etiqueta form.
<form action="pagina-envio-formulario.php" method="post">
Por ejemplo, si no tienes action, creo que lo que hace es enviar la página a si mismo.