如何解决 session_register() 弃用的问题?

2022-08-30 11:28:57

如何修复 PHP 5.3 中已弃用的问题session_register()


答案 1

不要使用它。描述说:

向当前会话注册一个或多个全局变量。

我想到了两件事:

  1. 无论如何,使用全局变量并不好,找到一种方法来避免它们。
  2. 您仍然可以使用 设置变量。$_SESSION['var'] = "value"

另请参阅手册中的警告:

如果希望脚本不考虑 工作,则需要改用数组,因为条目会自动注册。如果您的脚本使用 ,它将禁用 PHP 指令的环境中不起作用。register_globals$_SESSION$_SESSIONsession_register()register_globals

这非常重要,因为默认情况下该指令设置为 Falseregister_globals

进一步:

这将注册一个变量。如果要从函数中注册会话变量,则需要确保使用关键字或数组将其设置为全局变量,或者使用特殊会话数组,如下所述。globalglobal$GLOBALS[]

如果使用 (或 ),请不要使用 、 和 。$_SESSION$HTTP_SESSION_VARSsession_register()session_is_registered()session_unregister()


答案 2

直接使用 $_SESSION 设置变量。喜欢这个:

$_SESSION['name'] = 'stack';

而不是:

$name = 'stack';
session_register("name");

在此处阅读更多内容


推荐