2012-03-14 14 views
0

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()を使用するか、大きなセキュリティホールを開けますか?

+2

[マジック引用符](http://php.net/manual/en/security.magicquotes.php)が問題の可能性があります。この「機能」は、しばしばそれに依存する古いスクリプトに対して有効になります。このマニュアルには機能を無効にするための[いくつかの提案](http://php.net/manual/en/security.magicquotes.disabling.php)があります(そして、それを無効にすることは間違いありません)。 –

+0

'magic_quotes_gpc'は' On'です。 php.iniの設定を変更しようとします。 – testing

+2

最新のPHPバージョンの3つの喜びは、実際には完全に魔法の引用符を排除します。 –

答えて

0

サーバーのマジッククォートをオフにする必要があります。そうしないと、マジッククォートのオン/オフ状態に非常に注意する必要があります。

関連する問題