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

Predefined Variables docsの PHP マニュアル エントリから:

PHP 5.0.0 以降、長い PHP 定義済み変数配列はregister_long_arraysディレクティブで無効にすることができます。

これは、 (非推奨)$HTTP_GET_VARSとがおそらくregister_long_arraysディレクティブを使用してオフになっている$HTTP_POST_VARSことを意味します。$HTTP_COOKIE_VARS

これらは非常に長い間廃止されてきたため、とにかく使用しないでください。代わりに、、、およびスーパーグローバルを使用し$_GET$_POSTください$_COOKIE

最後に、ダウナーになるつもりはありませんが、個人的には、可能であれば PHP バージョン 5.3 未満に最適化されたものには近づきません。

于 2012-02-02T04:27:02.303 に答える