aviana... La variable $PHP_SELF no es autoglobal... en cambio desde el array $_SERVER['PHP_SELF'] sí lo es.
Segundo.... mientras puedas mantener la directiva register globals en OFF... hazlo! (hay mucha información sobre eso en el manual oficial y varias discusiones en este foro).
Tercero... si no puedes utilizar el array superglobal $_SERVER (y te da un error de no definido) es posible que estés utilizando una versión de PHP menor a la 4.1. Si este es el caso actualiza tu PHP.
Saludos