0

古いphpベースのアプリケーションであるautonomous lan partyで機能する機能を取得しようとしています。これはphp4に基づいていますが、php5サーバーでやりたいことで動作します(これもイントラネット環境でのみ使用されます)。ここから会計アドオンを追加します。私はphpを理解できますが、まだ少し錆びています。

以下は、私が立ち往生しているコードの小さなサンプルです...

<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="post" NAME="accounting" ID="accounting">
<strong>user: </strong><br>
    <SELECT NAME="userid[]" SIZE="5" class="formcolors" TABINDEX="1" MULTIPLE>
<?php
            $data = $dbc->query('SELECT username,userid FROM users ORDER BY username');
            while ( $row = $data->fetchRow()) {
              $option = '
                    <OPTION VALUE="%s" class="formcolors">%s</OPTION>';
              printf($option, $row['userid'], $row['username']);
        }
        $data->free();
        unset($option, $data);
?>
</SELECT>

問題は、それが te 行に達する$data->free();と、スクリプトの実行が停止し、トピックに記載されているエラーが表示されることです。コメントアウトすると (2 回、同様の行があります)、スクリプトは実行されますが、データを送信すると、ログファイルに別のエラーが表示されます...

PHP Warning:  mysql_escape_string() expects parameter 1 to be string, array given

コメントアウトした$data->free();ため、正しい結果が得られなかったことがエラーの原因だと思います。

ここに pastebin のファイルから完全なコードを貼り付けました(このページを他のすべてのコードで埋めたくありませんでした)。

どんな助けや援助も大歓迎です。アプリケーションの他のすべては期待どおりに機能します。

4

1 に答える 1