How to fix the session_register() deprecated issue?
How to fix the session_register()
deprecated problem in PHP 5.3
Don't use it. The description says:
Register one or more global variables with the current session.
Two things that came to my mind:
- Using global variables is not good anyway, find a way to avoid them.
- 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 usessession_register()
, it will not work in environments where the PHP directiveregister_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 theglobal
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 usesession_register()
,session_is_registered()
, andsession_unregister()
.
Use $_SESSION
directly to set variables. Like this:
$_SESSION['name'] = 'stack';
Instead of:
$name = 'stack';
session_register("name");
Read More Here
before PHP 5.3
session_register("name");
since PHP 5.3
$_SESSION['name'] = $name;