Ok... ¿Y donde estás indicando que el POST lo reciba el script de PHP?
Porque, hasta lo que yo sé,
action debería indicar el nombre del script...
Código HTML:
Ver original<form name="formulario" method="post" action="ejemploPost.php">
Nombre:
<input type="text" name="nombre" value="">
En cuanto a validar en PHP, creo que es evidente: Haces algo parecido a lo que realizas en JavaScript, pero para el $_POST que llega, porque el hecho de que lo tengas en el FORM, puede no implicar que esté llegando bien... Es una simple precaución, en especial para aquellos campos opcionales.