hi,
first:
Also, is there a reason that I wouldn't be able to use echo PHP_SELF in one of my pages? I use this for most of my form POST values, but I put some of them on a new server and the POST values are now blank. Must be some kind of server setting.
most likely, this is register_globals in php.ini.
if it is set to "off", you cannot access $PHP_SELF directly (among other issues) but you have to use $_SERVER['PHP_SELF'].
furthermore, posted variables are only available as $POST['fieldname'], analogous for $GET and $_SESSION.
second:
I assume you handle form processing like this: POST to PHP_SELF, then the page "processes itself" and finally does a header("Location:") to the "thank you" page.
thus, if you press "back" on the "thank you" page, you get to the form page request that contains the submitted form data (i.e.: the "invisible" second loading of the form page via <form action=PHP_SELF>). from the browser's point of view, you try to re-submit a form (in fact you really do!) and therefore it sends the warning dialog.
if double submitting is no problem (for example, when you have a list page and select some view restriction from a form à la "show employees from country [...]"), you can work around this using <form method="get"> instead of "post" (= default).
if it is a problem, then you have to put the form processing into an extra page 🙁 which you use as your "<form action" instead of PHP_SELF.
hope this wasn't too confusing 😉