1

私はphpInvを使用しています

http://alex.piechowski.org/inventoryで。login = admin / phpinv

「PHP警告:each()に渡された変数は配列またはオブジェクトではありません」というメッセージが表示され続けます

entry_new.phpの38行目

if ($itemid>0) {
            --> while (list ($colid, $property) = each ($col)) { <--
                    $result = $DB->query("INSERT INTO ".$DB->tableprefix."property (itemid,colid,property) VALUES ('".str_prepare($itemid)."','".str_prepare($colid)."','".str_prepare($property)."')");
                    if (!$result) {
                        $errortext = "Error: property not created\n";
                        eval("\$table = \"".templateget('error')."\";");
                    }
                }

誰かが喜んでD/Lして私を助けてくれませんか?私はこれに何時間も取り組んできました、そして私はそれを動かすことができないようです...

投稿された配列を受信して​​います。

4

2 に答える 2

2

初期化されていない変数を使用しようとすると、同じ警告が表示されます

渡そうとしている変数($ col)が存在し、最初にnullでないことを確認してください。また、変数名のスペルを間違えないようにする必要があります。

関数is_array($ col)を使用して、渡される変数が実際に配列であることを確認する必要があります。

于 2013-01-13T06:33:16.093 に答える
1

最近同じ問題が発生しました。

しばらく前からいくつかのソースをダウンロードしましたが、それが私のブラウザになってしまいました。

すべての入力が入力される前に、ブラウザがフォームを自動的に閉じました。

Chromeを使用している場合は、InternetExplorerに変更してみてください。

ブラウザの変更が機能しない場合は、投稿する必要のあるデータを取得していることを確認してください。

投稿されたすべての値は、次のコマンドで確認できます。

if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
于 2013-01-13T08:02:58.210 に答える