addslashesとmysql_real_escape_stringを使用して、PHPログインへの入力をサニタイズしようとしていました。 addslashes
を使用しますが、mysql_real_escape_string
は使用しません。MySQLのリアルエスケープ文字列
は、ここで私が正常にログインできるようにするものの例です:
$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
そして、これはしません:
$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
また、私の他のフィールドの一部が含まれていアポストロフィ。 addslashesを使用すると、DBのエントリがエスケープされないため、何も返されません。 mysql_real_escape_string
を使ってこれを修正できるかどうか疑問に思っていましたが、どうしたらよいか分かりません。
'addslashes()'は、mySQLデータのエスケープには使用できません。失敗した実際のユーザーデータを表示できますか?実行しているクエリ –
実際のSQL文はどのように見えますか? 'addslashes'はあなたがしたいことをしません。 –
magic_quotes/addslashesは' mysql_set_charset( "ASCII");またはLatin1が設定されている場合にのみ適法です。これは '--ansi'モードなどで動作する新しいMySQLサーバでは失敗する可能性があります。 – mario