2011-11-13 4 views
-2

私は私のDBへの入力をエスケープしています:データベースからselectinを実行するときに ""とエスケープの兆候がありませんか?

mysql_real_escape_string() 

私が入力した場合:

"Let's see" 

私がDBから選択したときに私が取得:

"let\'s see" 

は、どのように私はこれを防ぐん?私は最初にフォームに書いて、AJAXを通して.phpファイルに送信してから、それをmysql_real_escape_string()とそれ以外のものでエスケープします。

+2

データをデータベースに挿入する際に使用しているコードを投稿してください。 –

+3

魔法の引用符が有効になっている可能性があります。 – nickb

答えて

1

あなたのデータベースから何かを選択したときにそれがなぜ修正されないのかはわかりませんが、stripslashes()を使用して正常な状態に戻すことができます。

$str = "Let\'s see"; 
stripslashes($str); 
echo $str; 

なり出力:

は、あなたが magic quotesを超えて固定可能に破損し、ユーザーのデータへの素晴らしい方法である、オン持っているように聞こえる

2

を見てみましょう。 register globalsが良いアイデアだと思ったときに恐ろしい誤った機能がPHPの恐ろしい昔に紹介されました。

代わりにPrepared statementsを使用してください。これはあなたのデータを悪用することはなく、攻撃者があなたのデータベースを悪用することはありません。

関連する問題