Entrad en la web, y veréis que ambas funciones dicen que el campo nombre no contiene nada, luego NO RELLENÉIS ningún campo y pulsad en "Enviar". La función isset dirá que el campo SÍ contiene algo mientras que empty dirá que NO
isset() no tiene que fallar y no es una alias de empty ni nada similar. Los dos tienes propósitos diferentes, si dices que ah fallado es porque en realidad el fallo es lógico.
El error aquí esta, en que estas intentando comprobar con isset si $_POST['nombre'] contiene algún valor pero isset el propósito de isset es diferente.
El isset comprueba que $_POST['nombre'] esta definida, no comprueba que tenga algun valor.
Deberia ser asi:
EN ESTE MOMENTO SE USA LA FUNCIÓN ISSET
La variable nombre esta definida
EN ESTE MOMENTO SE USA LA FUNCIÓN EMPTY
La variable nombre NO contiene nada
Ej:
<?php
$hola = false;
{
echo "Esta definida la variable";
}
{
echo "La variable contiene algun valor";
}
?>
Salida:
Esta definida la variable
Pd: Si encuentras algún bug en alguna función puedes reportarla a php.net.
Saludos.