I think it sometimes depends on the order of the php and form in your page code.
Can you set up the page code to show the form code after the php codes with the error and Thank You messages?
In one of my forms the php code is coded first and the last item is "else" followed by the form, so the browser processes all the previous instructions first, which are invalid when the page is first loaded and so the "else" becomes valid and the form shows.
After the form is filled in and the submit button pressed, the page is processed again and one of the previous instructions to post the data and show the error message or Thank You message becomes valid and the message is displayed where the form was and the form is not shown because the last "else" is not reached because a previous instruction was valid. In the case of an error warning the back button must be used to see the form again.
There is a separate board for PHP queries. I'm not an expert in PHP.
Code downloaded to my PC will be deleted in due course.
WIN7; IE9, Firefox, Opera, Chrome and Safari for Windows; screen resolution usually 1366*768.
Also IE6 on W98 with 800*600 and IE8 on Vista 1440*900.