POSTが行われるたびにエスケープ文字が表示されます。投稿フォームからの文字列のエスケープ文字
\ -> \\
' -> \'
" -> \"
私はある形式から別の形式にデータを送信する多段階形式を持っています。私は準備された文章で値をデータベースに保存します。現在のデータベースの値はPaul\'s House
のようになります。ユーザーは、文字列に一重引用符と二重引用符を使用する可能性があります。
<?php
echo $_POST['value'];
?>
<form action="form.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="value" value="Paul's House">
<input type="submit" value="Next">
</form>
なぜか、文字列をエスケープ:
これは単純な例では、エスケープ効果を実証していますか?複数のフォームでデータを処理する正しい方法は何ですか?それをデータベースに保存する正しい方法は何ですか? stripslashes()
を使用するか、大きなセキュリティホールを開けますか?
[マジック引用符](http://php.net/manual/en/security.magicquotes.php)が問題の可能性があります。この「機能」は、しばしばそれに依存する古いスクリプトに対して有効になります。このマニュアルには機能を無効にするための[いくつかの提案](http://php.net/manual/en/security.magicquotes.disabling.php)があります(そして、それを無効にすることは間違いありません)。 –
'magic_quotes_gpc'は' On'です。 php.iniの設定を変更しようとします。 – testing
最新のPHPバージョンの3つの喜びは、実際には完全に魔法の引用符を排除します。 –