Hopefully I can help you understand why you are getting the inconsistencies between $PHP_SELF and $_SERVER['SCRIPT_NAME'], $PHP_AUTH_USER and $_SERVER[REMOTE_USER], etc.
Basically, as I understand it, $PHP_SELF is the old (deprecated) method that required Register-Globals on and most hosing companies wouldn't turn it on anyway. $_SERVER seems to be the way forward and doesn't require any special server settings.
See here for the full explanation:
http://www.php.net/manual/en/faq.using.php#faq.register-globals
Dave.