I am not familiar with PHP3.
Must you continue to support PHP3?
You may have to use the old $HTTP*VARS style, which is not superglobal, so requires a:
global $HTTP_POST_VARS;
within functions, for example.
Or you can just keep register_globals on.
You cant decide to code with register_globals off and use superglobals, and at the same time be backward compatible with PHP3.
You can code with register_globals on, or choose to use the deprecated $HTTP*VARS form with the global keyword, but I wont enthusiastically recommend either.