Si los demás campos llegan vacíos es porque el "name" en el formulario HTML no es el mismo que luego usas para $_POST['name'] ....
Por ejemplo en el formulario pones Empresa y al recoger el dato pones $_POST['empresa']. Las variables son sensibles a las mayúsculas. Rectifica eso.
En cuanto a lo último, tranquilo. Cuando se sabe, se sabe, y cuando no... se aprende