PHPとJqueryを使用するCodeigniterで書いたコメントスクリプトがあります。JQueryとCodeIgniterを使用して安全にDBにコメントを付けるには?
基本的には、ユーザーがコメントを書き込んだ後に送信します。次に、AJAXを使用してサーバーサイドスクリプトを呼び出して、コメントを確認、検証、挿入します。
私はCodeIgniterのを使用していますので、私はバインディング
以下のようなCodeIgniterのから提供を使用して、コメントをエスケープしています言うようにはJQueryの終わりに、私は、PHPの終わりにencodeURIComponent
$.ajax({
url : 'http://domain.com/ajax/post_comment',
type : 'post',
data : encodeURIComponent($(this).val()),
success : function(data){
//more code here
}
});
を使用してエスケープしています
$sql = "INSERT INTO video_comments VALUES(NULL, ?);
$this->db->query($sql,array($comment));
これはかなりうまく機能して脱出して挿入することができます
!"£$%^&*()_+=-}{[email protected]:?></.,#;][¬`|
問題は、'
(一重引用符)または\
(バックスラッシュ)を挿入できないことです。それは彼らが適切に逃げていないので、私は推測する?
単引用符をエスケープすると思われる\'
を挿入することができるかもしれません。しかし、私はCodeIgnitersバインディングがそれを世話するだろうと思っていたでしょうか?
アイデア?
をあなた 'のvar_dump($コメント)'場合は、それを送信する前に、AJAXポストから値を取得した後、 DB、問題が*どこにあるかを知ることができます。あなたはそれがエスケープされていることを確認するために手動で文字列を挿入しようとしましたか?なぜあなたは 'encodeURIComponent'を使っていますか? –