0

アポストロフィが含まれている場合、オプション値コンボボックスからポストされた値に問題があります。値はアポストロフィで切り捨てられています。値はデータベースから取得され、アポストロフィを使用して適切に配置されます。

なぜこれが起こるのか理解していますが、それを回避する方法がわかりません。何か案は?前もって感謝します。

echo "<tr><td>Location:</td>";
while($row = mysql_fetch_assoc($result)) {
  $dropdown_location .= "\r\n<option value='{$row['location']}'>{$row['location']}</option>";
}

$dropdown_location .= "\r\n</select>";
echo "<td>" . $dropdown_location . "</td> </tr>";
4

3 に答える 3

1

あなたのコードは静かで乱雑で、データの投稿中または取得中に問題が発生したかどうかmysqli_real_escape_string()、データベースにデータを投稿する前に引用符をエスケープするために常に使用しmysql_()、データをサニタイズするmysqli_()かどうかについての質問が明確ではありません。 PHPコミュニティによってメンテナンスされなくなっPDOたためmysql_()..

ここの大きな赤いボックスを読んでください

代わりにこれらのmysqli_()を使用してください

于 2012-11-08T17:19:02.733 に答える
1

html、文字列、php 変数などを混同するために php ヒアドキュメントを使用できます。

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$content .= <<< END
 <tr><td>Location:</td>
END;

while($row = mysql_fetch_assoc($result)) {

$dropdown_location .= <<< END
     <option value="$row[location]">$row[location]</option>
END;
}

$content .= <<< END

 <td><select name="location">$dropdown_location</select></td></tr>

END;

echo $content;

END と END を含む行の後に空きスペースを入れないように注意してください。

于 2012-11-08T17:39:43.307 に答える
0

htmlspecialcharsを試すことができますか?これにより、やりたいことができるはずです。

http://php.net/manual/en/function.htmlspecialchars.php

于 2012-11-08T17:16:27.173 に答える