PHP会话扩展不考虑全局变量

RAN*_*GER 3 php session global-variables

我目前收到错误:

警告:未知:您的脚本可能依赖于PHP 4.2.3之前存在的会话副作用.请注意,除非启用register_globals,否则会话扩展不会将全局变量视为数据源.您可以通过将session.bug_compat_42或session.bug_compat_warn分别设置为off来禁用此功能和此警告,分别在第0行的Unknown中

我相信它与以下代码有关(因为那时我开始注意到它):

session_start();                         // Open sessions
$remember_alert = $_SESSION['alert'];   // Remember session alert
session_unset();                         // Unset all data in session
session_destroy();                     // Kill empty session
session_start();                         // Re-open session
$_SESSION['alert'] = $remember_alert;   // Recall session alert
Run Code Online (Sandbox Code Playgroud)

这是我正在构建的CMS的logoff.php页面上的代码,用于清除除警报变量之外的所有会话信息.任何见解将不胜感激!

ale*_*lex 5

嗨,我有同样的问题,在我的情况下,它在这里$ arrFormData和这里$ _SESSION ['arrFormData']事情是具有相同的变量名称.在我的情况下,它发生在$ _GET数组上,但我想它应该是类似的.尝试将$ arrFormData变量重命名为其他内容并让我们知道它是否有效.

来源.

这是因为在某个地方你拥有与$_SESSION全局键相同的变量名.

session_start();
$_SESSION['a'] = 1;
$a = 1;
Run Code Online (Sandbox Code Playgroud)

您可以通过session.bug_compat_42关闭php.ini或使用来禁用错误ini_set().