Ti stampa sempre errore perché viene eseguito sempre, anche appena accedi la prima volta alla pagina e quella volta lì, ovviamente i dati ancora non esistono.
La variabile $msg chi è?
Dove viene definita?
<form ... onsubmit="send()">
la funzione send() l'hai già chiamata al click del pulsante, che la chiami a fare una seconda volta quando i dati del form vengono effettivamente inviati?