私は最も簡単な作業で問題があります。 htmlページには、jqueryで$ .get()を使用してデータをPHPファイルに送る単一のtextareaタグがあります。php投稿を安全にする
そこから、htmlspecialcharsからaddslashesまでさまざまな方法を使用します。 しかし、1つの\が改行の後ろに残っているかどうかでエラーを投げ捨てるか、改行を保存しないかは、何もするべきではありません。
テキストエリアの値をPHPファイルに渡して、それを注入証明とjson互換にするにはどうすればよいですか? 私はmysqlでアクセスし、$ .formatJSON()を使って書式を設定します。それは問題なく動作し、すべての改行文字を保持しますか?
//php
$result = htmlspecialchars($_GET["message"]);
mysql_query("INSERT INTO table (message) VALUES ($result)");
//jquery
$.ajax({
url:("http://websitename.com/post.php?message=" + message + "&callback=?"),
dataType: 'JSONP',
success:function(json){
callback($.parseJSON(json));
},
error:function(){
},
});
これが実際のコードの場合、SQLは間違っています。挿入しようとしている文字列に一重引用符を追加する必要があります。 'mysql_query(" INSERT INTO table(message)VALUES( '** '**' $ result' **' ** ')");そして挿入する前に文字列をエスケープします。 – dakdad
それは正しいものを保持しながら、厄介な文字をエスケープすることができる点です。また、PHPコードも単なる例です。 – Drake
[大脱走(または:テキスト内でテキストを扱うために必要なこと)](http://kunststube.net/escapism/)をお勧めしますか? – deceze