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

时间:2011-04-11 03:04:05

标签: php session global-variables

我目前收到错误:

  

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

我认为它与以下代码有关(因为那是我开始注意到的时候):

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

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

1 个答案:

答案 0 :(得分:5)

  

嗨,我有同样的问题,在我的   案件就在这里$ arrFormData和这里   $ _SESSION ['arrFormData']事情是   具有相同的变量名称。在我的   它发生在一个$ _GET数组上,   但我想它应该是相似的。给   尝试重命名$ arrFormData   改变别的东西让我们   知道它是否有效。

Source

这是因为某个地方的变量名称与$_SESSION全局的密钥相同。

实施例

session_start();
$_SESSION['a'] = 1;
$a = 1;

您可以通过session.bug_compat_42php.ini关闭ini_set()来停用错误。

相关问题