Haz un print_r($_POST) para ver que valores recibes.
Cita: La variable $msg la he declarado anteriormente fuera de la función, para que no fuera local.
para que sea considerada global dentro de la funcion tienes que declararla como global
www.php.net/global
Por ultimo, yo cambiaria la validacion del onclick de un button al onsubmit del formulario, cambiando el boton a un submit. Tal como lo tienes, el formulario solo funciona con javascript activado. Colocandolo en el onsubmit, el formulario funcionaria sin javascript (por supuesto, no haria la validacion javascript).