0

私のフォームには、>2012-01-01 <2012-02-01 などのデータを含むテキスト フィールドがありますが、フォームをシリアル化してデータを投稿すると、フィールドには >2012-01-01 のみが含まれ、< は含まれません。 2012-02-01。

それはどこに行きましたか?

$("#grouppositionsform").live("submit",function(e){ 
    e.preventDefault();
    $('body').addClass('wait');
    $.post("/page.php",$(this).serialize(), function(data){
        $('.showdirectory').fadeOut('slow', function() {
            $(".showdirectory").html(data);
            $(".showdirectory").fadeIn("slow");              
        });
  }).error(function() { 
    //alert("error"); 
  }).complete(function() { 
    //alert("complete"); 
    $('body').removeClass('wait');
  });
});
4

1 に答える 1

1

答えは、joomla がその文字を取り、それにノーと言い、解析しなかったということです。したがって、jqueryは問題なくデータを投稿していましたが、joomlaには返されたデータが安全であることを確認する機能があります.

だから私が $_POST["searchstring"]; をチェックしたとき すべてのデータがそこにありました。

JRequest::getVar("searchstring",-1); を使用する場合 それは私を保護し、< を削除します。

たまたま Joomla がここでこれを説明しています: http://docs.joomla.org/Secure_coding_guidelines そして、getVar を変更してデータを通過できるようにしました。

だからこれは私のために働いた。$sstr = JRequest::getVar("searchstring",'-1','REQUEST','STRING',JREQUEST_ALLOWRAW);

于 2012-12-05T05:04:29.420 に答える