1) This is the PHP manual's defintion:
http://www.php.net/manual/en/reserved.variables.php
'SCRIPT_NAME'
Contains the current script's path. This is useful for pages which need to point to themselves.
'PHP_SELF'
The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar.
If PHP is running as a command-line processor, this variable is not available.
2)Hmmm, good question, my inclanation would be to use $PHP_SELF
3) This really depends on how your hosting company is setup. I mean, Assuming that your hosting company has installed PHP 4 and it is compiled correctly, there is no reason it should not work.