Sorry if it wasn't clear 🙂
is this all happening on the same page?
Yes, I'm using php_self so the page calls itself
what is the 'browse' button supposed to do?
This is the standard browse button that the browser renders if you use a file input tag in a form
what type of input is each of the things described?
Well, in my simple test program I have text field and a file field. The text field is validated so it can't be left blank. If the user fills in only the file field (by pressing browse and selecting a file on their box) but leaves the text field empty the error will display but the program presents a blank form with the error and the user has to re select the file.
I know how to make other types of form elements to retain theit values when php programs call themselves but can't do it with file type input tags or validate them.
Thanks