在我的表单中,我有一个文本字段,其中包含> 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');
});
});
答案 0 :(得分: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);