Fijate en algo:
Código HTML:
Ver original<input id="txtNom" type="text" name="first_name" placeholder="Emanuel" required />
en esta etiqueta tienes el id y el name al enviar esta informacion sea por POST o por GET las recoges con su nombre no con su id por lo que no es lo mismo
Código PHP:
Ver original$nombre=$_POST['txtNom'];//esto no existe como name en el formulario por lo tanto no existe en el array
$nombre=$_POST['first_name'];// es la posicion del array que lleva la informacion