1and1 turn off register_globals on PHP on 5.6 and upper.
register_globals was actually removed completely in PHP 5.4+, so unless you are currently on PHP 5.3 or earlier then you're not using register_globals.
Do you know for sure whether you are making use of register_globals?
register_globals has also been "Off" by default for... a long time. So, in order to use it you must explicitly enable it in .htaccess. (Of course, 1and1 could enable this in the server config, essentially changing the default - but that would be a pretty bad security model to follow.) So, check the output from phpinfo() (as mentioned above) and see if register_globals is enabled. No use progressing further if it's not (and your code is working as expected).
To "properly fix" the use of register_globals, there is no quick way. You need to methodically go through all the code! You can try disabling register_globals and enable full error_reporting. If you then get E_NOTICE messages for undefined variables, whereas you did not with register_globals enabled, then that suggests the use of register_globals, but also suggests the code might be insecure so needs fixing anyway! (And you might need to write many unit tests to unearth these error messages.) Secure code that uses register_globals should not generate any E_NOTICE messages, since the variables will be initialised.
However, a quick and dirty workaround is to simply write a bit of code at the top of your script (included on every page) that emulates register_globals. All register_globals does is copy values from the request (from the superglobals) in a predefined order into global variables of the same name. It automatically registers global variables. You can, however, do this "manually" if you want. This is covered in the FAQ section in the manual: [
php.net...]