2010-11-29 9 views
-1

ユーザ入力からバックスラッシュを削除するにはどうすればよい:P私は、私はこの1つにぼかしを取得しています

function escape($string) 
{ 
    $string = stripslashes($string); 

    if (function_exists('mysql_real_escape_string')) { 
     return mysql_real_escape_string($string, $this->connection); 
    } else { 
     return mysql_escape_string($string); 
    } 
} 

$content = '""""""test\'te%%%%st`test_huhu\'_'; 

echo '<br>output 1 = '.stripslashes($content); 
echo '<br>output 2 = '.$db->escape($content); 

出力output 2output 1のように同じになるようにする方法

output 1 = """"""test'te%%%%st`test_huhu'_ 
output 2 = \"\"\"\"\"\"test\'te%%%%st`test_huhu\'_ 
、なぜ output 2そうなのですか?

+2

あなたが何を求めているのか分かりません。出力2は 'mysql_real_escape_string()'ですべての引用符をエスケープしています。それがあなたが望むものでないなら、それをしないでください。 – Jonah

+1

私は混乱しています。出力2はmysqlデータベースに挿入する準備のできた文字列のようです。挿入および後続の選択クエリの後に、スラッシュは存在しません。 – Stephen

+0

@Stephen - はい、データは出力2のdbに正確に保存されます – Blur

答えて

4

mysql_real_escape_stringすべてをエスケープする"'だからこそそれらすべてのスラッシュを取得します。データベースにデータを入れる前にスラッシュを削除すると、セキュリティのために が非常に悪い攻撃が行われていると思われますか?

関連する問題