0

所以我正在使用一个名为 program-e 的 PHP-AIML 程序,它运行得很好,我知道它会很稳定,因为它刚刚完成,但它适用于 php 4.0.4,现在我在 5.0 上,所以我不知道做什么。

我的 foreach() 函数的代码在这里:

// Turn this off in case people have it on.
set_magic_quotes_runtime(0);

// Can't turn off magic quotes gpc so just redo what it did if it is on.
if (get_magic_quotes_gpc()) {
    foreach($HTTP_GET_VARS as $k=>$v)
        $HTTP_GET_VARS[$k] = stripslashes($v);
    foreach($HTTP_POST_VARS as $k=>$v)
        $HTTP_POST_VARS[$k] = stripslashes($v);
    foreach($HTTP_COOKIE_VARS as $k=>$v)
        $HTTP_COOKIE_VARS[$k] = stripslashes($v);
}

这是我在页面上得到的错误:

Warning: Invalid argument supplied for foreach() in /home/content/80/8657080/html/e/src/admin/dbprefs.php on line 42

Warning: Invalid argument supplied for foreach() in /home/content/80/8657080/html/e/src/admin/dbprefs.php on line 44

Warning: Invalid argument supplied for foreach() in /home/content/80/8657080/html/e/src/admin/dbprefs.php on line 46

那么我该如何解决这个问题。

4

1 回答 1

1

预定义变量文档的 PHP 手册条目:

从 PHP 5.0.0 开始,可以使用register_long_arrays指令禁用长 PHP 预定义变量数组。

这意味着 (deprecated)$HTTP_GET_VARS$HTTP_POST_VARS可能使用register_long_arrays指令$HTTP_COOKIE_VARS关闭。

无论如何,您都不应该使用它们,因为它们已经被弃用了很长时间。相反,请使用$_GET$_POST$_COOKIE超全局变量。

最后,不要沮丧,但如果可能的话,我个人会远离任何针对 PHP 版本 < 5.3 进行优化的东西。

于 2012-02-02T04:27:02.303 回答