Los mensajes que tienes te avisan de que tal variable no está declarada ... (con o sin valor .. el caso es "declarada" ..)
Cuando usas las variables (arrays) superglobales como $_POST .. etc .. en scritpt's que hacen vários procesos (como tu caso) .. en algún momento no existen (no están definidas) normalmente en el estado inicial (al partir con tu script).
Es necesario hacer chequeos tipo "si existe tal variable .. .la uso" con isset() minimo
Cita: if (isset($_POST['variable'])){
// uso $_POST['variable']
// etc código.
}
Y así con todas . .o bajo && en el IF ..
También podrías ajustar el tipo de mensaje de error que PHP arroja a un nivel más bajo (para que no haga "NOTICE"):
www.php.net/error_reporing
Esto no es la solucióna tus problemas en el aspecto de que "ocultar" un mensaje de error no quiere decir que tu error no siga existiendo.
Un saludo,