興味深い問題が発生しました。私はPHPを提出する場合は、次のように私は、フォームデータを取り込むポストを経由してアクションを持つ「tradtional」道を形成:
headline:I%27m+just+here+for+friends%21
私が使用して私のDBに追加する前に、データ・サーバ側をエスケープ:mysql_real_escape_stringの($文字列)すべてが素晴らしいです。
私は今、それはこのようになりますjqueries $ .postメソッドを使用して、同じフォームを送信し、それを
$.post("save_data.php", $("#form_id").serialize(),
function(data) {
// process my results
}
);
を私のシリアル化データを渡す場合:
headline:I'm+just+here+for+friends!
mysql_real_escapeコールが実際に動作しません。データが正しくエンコードされているか、正しくエンコードされていないと仮定しているためです。これを回避する方法や、フォームデータをポストする前にエンコードする方法はありますか?ここで
は、私は現在、PHP内のフォームデータを処理しています方法です:見出し:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$result = updateDataEntry($_POST);
}
$ _POSTはとして直列化された形式のデータを見て、私はちょうど+ここ+ + +友人のためにしています!私のupdateDataEntryメソッド内でmysql_real_escape_string($ string)を使用しても、DB内にエスケープ文字が追加されています。
jQuery経由で投稿されたデータでmysql_real_escape_stringを呼び出すと何が問題になりますか?それがうまくいかない理由はありません。 –
これは動作しますが、フォームデータを若干異なる形式で送信します(上記を参照)。違いは、DBが特殊文字をエスケープすることです。 – Paul
エスケープされていない文字はありません。どのような場合にDBに挿入されるのかの例を挙げられますか? –