Search code examples
phpsessiondeprecatedphp-5.3php-5.4

How to fix the session_register() deprecated issue?


How to fix the session_register() deprecated problem in PHP 5.3


Solution

  • Don't use it. The description says:

    Register one or more global variables with the current session.

    Two things that came to my mind:

    1. Using global variables is not good anyway, find a way to avoid them.
    2. You can still set variables with $_SESSION['var'] = "value".

    See also the warnings from the manual:

    If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

    This is pretty important, because the register_globals directive is set to False by default!

    Further:

    This registers a global variable. If you want to register a session variable from within a function, you need to make sure to make it global using the global keyword or the $GLOBALS[] array, or use the special session arrays as noted below.

    and

    If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().