所以我正在使用一个名为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
所以我该如何解决这个问题。
答案 0 :(得分:1)
来自Predefined Variablesdocs上的PHP手册:
从PHP 5.0.0开始,长PHP预定义变量数组可能是 使用 register_long_arrays 指令禁用。
这意味着可以使用 register_long_arrays 指令关闭(已弃用的)$HTTP_GET_VARS
,$HTTP_POST_VARS
和$HTTP_COOKIE_VARS
。
你不应该使用它们,因为它们已被弃用了很长时间。相反,请使用$_GET
,$_POST
和$_COOKIE
超全球。
最后,不要沮丧,但我会亲自远离针对PHP版本优化的任何事情< 5.3如果可能的话。