一尘不染

使用全局变量作为数据源的PHP会话副作用警告

php

我正在尝试托管一个给我的PHP网站。我看到以下警告:

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

这是什么意思?我如何在代码中跟踪此问题的根源?


阅读 222

收藏
2020-05-26

共1个答案

一尘不染

基本上,您有一个与会话名称相同的变量。例如:

$_SESSION['var1'] = null;
$var1 = 'something';

这将重现此错误。您可以阻止PHP尝试查找现有变量,并通过在脚本中添加以下行来警告它们:

ini_set('session.bug_compat_warn', 0);
ini_set('session.bug_compat_42', 0);

这些值也可以在php.ini或.htaccess中设置

2020-05-26