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?