htmlフォームはtextarea入力を受け入れ、$ _POST値を使用して入力値を表示しています。 たとえば、フォーム入力からを追加できないようにするにはどうしたらいいですか?
<html>
<?php if($_POST['input'){
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"><?=$_POST['input']?></textarea>
<input type="submit" value="Test it">
</form>
<?php
} else {
?>
Please copy in a text of your choice
<br /><br />
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"></textarea>
<input type="submit" value="Test it">
</form>
</html>
すべての動作は、一重引用符と二重引用符にバックスラッシュ '\'が追加されている点を除いてすべて正常に動作します。 バックスラッシュを追加しないように設定するにはどうすればよいですか?
注意してください!これらのバックスラッシュは、SQLインジェクションを防ぐためにあります - 最良の方法ではなく、PHPの方法です... – rdmueller
正確に。 ADDITIONでは '<?= $ _ POST ['input']?>'の代わりに '<?= htmlspecialchars($ _ POST ['input'])?>'を使用します。そうしないと、予期せぬ結果(例えば、出力としてHTMLが無効になるなど)が発生したり、悪意のある意図(XSS)に使用される可能性があります。 – yankee
いいえ、 "PHPのやり方"は、mysqli_real_escape_stringまたはプリペアドステートメントを使用することです。データベースコネクタが提供するものであれば、魔法の引用符は常に間違いです。 – etarion