Solo un comentario antes de comenzar.
El codigo de entramex no devuelve nada por la condicion
if(isset($_POST['enviar']))
Porque no hay ningun campo con name="enviar", el boton submit tiene value pero no tien name...lo que no es ningun problema pero solo la explicación.
Ahora, vamos al asunto.
Primero unas clases de concepto:
-Solo se cean las variables POST cuando se envian con contenido del formulario. Es decir, si en el formulario el campo de texto con name="n3" está vacío, la variable $_POST['n3'] NO existirá, es decir, que no está definida cuando la llames para
Código PHP:
$n3= $_POST['n3'];
porque $_POST['n3'] nunca llegó a enviarse.
Solución:
Lo que se suele hacer es comprobar si cada variable existe....Tienes que saber si las variables son opciones o son obligatorias
Si son obligatorias deberias volver a enviar el usuario al formulario
Si son opcionales pues defines las variables no rellenadas con variables vacias y sigues con el php
Siempre es importante comprobar los campos que te llegan.
Con la función tu compruebas junto a un if si existe una variable, luego depende de ti que hacer cuando no está
Te dejo ejemplo sucios y rapidos para que entiendas el procedimiento:
Obligatorio
Código PHP:
if(!isset($_POST['n3']) )
{
echo 'X campo es obligatorio';
die();
}
$n3 = $_POST['n3'];
Opcional
Código PHP:
if(!isset($_POST['n3']) ) $n3='';
else $n3 = $_POST['n3'];
Esto debes hacerlo por cada variable que recibes de un formulario, si lo quieres hacer bien.
un saludo!!