古い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 のファイルから完全なコードを貼り付けました(このページを他のすべてのコードで埋めたくありませんでした)。
どんな助けや援助も大歓迎です。アプリケーションの他のすべては期待どおりに機能します。