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

  

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

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

有帮助吗?

解决方案

基本上你有一个与你的会话同名的变量。例如:

基本上你有一个与你的会话同名的变量。例如:

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

将重现此错误。您可以通过将以下行添加到脚本中来阻止PHP尝试查找现有变量并向您发出警告:

<*>

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

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

将重现此错误。您可以通过将以下行添加到脚本中来阻止PHP尝试查找现有变量并向您发出警告:

<*>

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

其他提示

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

//Start of script

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

<*>

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>SESSION['firstname']=

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

<*>

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>REQUEST['firstname'];

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>SESSION['bob'] = $bob;

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>SESSION['firstname']=

这里似乎存在一些问题:

http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect

说这样的案例:

<*>

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>REQUEST['firstname'];

会触发警告。

此外,我解释了这个php bug内容: http://bugs.php。 net / bug.php?id = 41540 表示当您将变量分配给尚未初始化的会话超全局时也可能发生此错误,例如

<*>

这是关于找出导致警告的重要信息,但我建议不要关闭Owen提到的警告。这些运行时函数是在PHP 5.4.0中删除,开发人员应该进入避免使用变量的做法。

要解决这个问题,开发人员可能会感到痛苦,但如果你有

这是关于找出导致警告的重要信息,但我建议不要关闭Owen提到的警告。这些运行时函数是在PHP 5.4.0中删除,开发人员应该进入避免使用变量的做法。

要解决这个问题,开发人员可能会感到痛苦,但如果你有

这是关于找出导致警告的重要信息,但我建议不要关闭Owen提到的警告。这些运行时函数是在PHP 5.4.0中删除,开发人员应该进入避免使用变量的做法。

要解决这个问题,开发人员可能会感到痛苦,但如果你有

这是关于找出导致警告的重要信息,但我建议不要关闭Owen提到的警告。这些运行时函数是在PHP 5.4.0中删除,开发人员应该进入避免使用变量的做法。

要解决这个问题,开发人员可能会感到痛苦,但如果你有

<*>

将会话重命名为

<*> 只要会话名称和变量名称不同,

或反之亦然。可以这样想:当您升级到最新版本时,无论如何都必须调试代码。

SESSION["user"] $user;

将会话重命名为

<*> 只要会话名称和变量名称不同,

或反之亦然。可以这样想:当您升级到最新版本时,无论如何都必须调试代码。

SESSION["sessuser"];

将会话重命名为

<*> 只要会话名称和变量名称不同,

或反之亦然。可以这样想:当您升级到最新版本时,无论如何都必须调试代码。

SESSION["user"] $user;

将会话重命名为

<*> 只要会话名称和变量名称不同,

或反之亦然。可以这样想:当您升级到最新版本时,无论如何都必须调试代码。

当您对.htaccess进行更改时,ini_set不起作用。你需要这样做:

php_flag session.bug_compat_42 0
php_flag session.bug_compat_warn 0

在我的情况下,php.ini从on变为off

像这样:

session.bug_compat_42 = off
session.bug_compat_warn = off

如果不能正常工作,请重新启动apache

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top