终极解决Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
我来解释一下这句话:
警告:未知:您的脚本可能依赖于一个会话的副作用直到PHP 4.2.3中存在。请注意,本次会议扩展不考虑作为数据源的全局变量,除非启用了register_globals。您可以禁用此功能,这通过设置session.bug_compat_42或session.bug_compat_warn分别以关闭在线0未知,警告
明白是原因了!如果解决呢?
第一出现的原因是
如案例:
- <?
- session_start();
- $a=5;
- session_register('www.phpzy.com');
- ?>
这种写法改成
- <?
- session_start();
- $a = 5;
- $_SESSION['www.phpzy.com'] = $a;
- ?>
就可以解决
来源于绿色php资源
http://www.phpzy.com 转载保留
第二种
- <?
- session_start();
- $_SESSION['a'] = NULL;
- echo $a = "a";
- ?>
session值是空!
又变量名又一样,这样就警告了!
解决方法一
屏蔽警告
在首行加上
ini_set("session.bug_compat_42","Off;
ini_set("session.bug_compat_warn","Off;
或者在php.ini里面直接修改
session.bug_compat_42=0
session.bug_compat_warn=0
或者
session.bug_compat_42 = Off
方法二
session名字和变量不要一样!或者session一定有值!不能为空