user form submission with error handling