0

フォームの一部の入力をエスケープする必要があります。mysql_real_escape_string を使用して値をエスケープしましたが、データベース内の値に多くのスラッシュが追加されました。その理由は、入力にアポストロフィが含まれているためです。

スラッシュを取り除くために、mysql_real_escape_string の後にストリップスラッシュを使用すると、データがデータベースに正常に送信され、データベースに値を持つアポストロフィが表示されません。

$name = mysql_real_escape_string(trim($_POST['userame']));
$name = stripslashes(stripslashes($userame));

// その後、データはアポストロフィなしで db に正常に送信されます

確認したかったのですが、これは入力値をエスケープする正しい方法ですか? ありがとう

ダヤン

4

3 に答える 3

4
  1. マジッククォートを無効にする
  2. mysql_real_escape_string(stripslashes($_POST['username']));
于 2012-07-02T14:01:33.403 に答える
2

いいえ、ちがいます。php.ini のmagic_quotes_gpc設定を確認してください。無効にできない場合は、使用する前にストリップスラッシュを使用してmysql_real_escape_stringください。$_POSTリンクには、 、$_GETおよびからグローバルに削除するメソッドがあり$_COOKIEます。または、さらに良いことに、PDOで準備済みステートメントを使用します

于 2012-07-02T14:01:06.193 に答える
0

magic_quotes_gpc を有効にしている場合は、エスケープする前に stripslashes() 関数を使用する必要があります。そうしないと、2 回エスケープすることになり、スラッシュがロードされます。

http://se.php.net/manual/en/function.mysql-real-escape-string.php

于 2012-07-02T14:04:30.983 に答える