That's not an error, it's a notice. You can turn off displaying them by calling error_reporting(0); , for example. This notice means, that $_POST does not contain anything for the index 'submit'. Don't worry about it.
The poster was creating a registration page and given the level of the question the most likely scenario is that there is a naming mismatch. Since the poster did not mention they were using AJAX it is highy unlikely that he is passing POST variables any other way.
By setting error_reporting(0); you are just masking the problem. If you are really interested in passing POST variables by some other method it would be best to test the POST array with the isset() function. This way the user has knowledge that the data is not coming from a form and can either allow or reject the request based upon that knowledge. Setting the error reporting off just opens the site to XSS attacks.