Register Globals On Off

PHP/MySQL | Updated 2026

register_globals was a PHP setting that automatically converted URL parameters and form data into global variables. It was removed entirely in PHP 5.4 (released in 2012) due to serious security risks. If you are seeing errors about register_globals, your code needs to be updated.

01. How to Update Your Code

Scripts that relied on register_globals used bare variable names like $username instead of $_POST['username']. To fix this, replace global variable references with the appropriate superglobal array:

// Old code (register_globals ON):
echo $username;

// Updated code:
echo $_POST['username'];    // For form POST data
echo $_GET['username'];     // For URL parameters
echo $_REQUEST['username']; // For either POST or GET
echo $_SESSION['username']; // For session data

02. If This Is a Third-Party Application

If you are running an older application (CMS, forum, shopping cart) that requires register_globals, you need to update to a current version of that software. Any application that still requires register_globals has not been maintained since at least 2012 and almost certainly has unpatched security vulnerabilities.

If no update is available, the application has been abandoned and you should migrate to a supported alternative. For CMS options, see How to Install WordPress or Shopping Cart Software.

Security Warning

Do not attempt to re-enable register_globals or use workarounds like extract($_REQUEST). These create the same security vulnerabilities that led to register_globals being removed. The proper fix is to update the code to use superglobal arrays.

Need Help Updating Old Code?

If you need assistance migrating an older application to a current version, our team can help.

Open a Support Ticket

Quick Recap

  1. register_globals was removed in PHP 5.4 (2012)
  2. Cannot be re-enabled on modern PHP versions
  3. Replace bare variables with $_GET, $_POST, $_REQUEST, or $_SESSION
  4. Update third-party apps to current versions
  5. Do not use extract($_REQUEST) as a workaround

PHP compatibility guidance · Last updated March 2026 · Browse all PHP/MySQL articles

  • 496 Users Found This Useful

Was this answer helpful?

Related Articles

PHP system exec Functions Disabled on Shared Hosting

PHP/MariaDB/MySQL | Updated March 2026 The error "Warning: system() has been disabled for...

How to Add a User to a MariaDB/MySQL Database

PHP/MariaDB/MySQL | Updated March 2026 Every application that uses a database (WordPress,...

What is the proper MariaDB - MySQL import and export format?

PHP/MySQL | Updated 2026 When importing or exporting MariaDB/MySQL databases, the format...

Server Paths - PHP Perl Python and More

PHP/MariaDB/MySQL | Updated March 2026 The default path to PHP on Ultra Web Hosting servers...

The MySQL Server Is Currently Offline - DBCACHE Exit 11

Server Maintenance | Updated March 2026 When cPanel displays "The MySQL server is currently...



Save 30% on web hosting - Use coupon code Hosting30