我使用的是Codeigniter 3
,并且由于MY_Controller,我在使用表单提交时使用重定向时遇到了问题。基本上我有一个日期和文本的搜索表单,我使用基于表单输入的URI段在MY_Controller中重定向。即在从我的基地网站URL提交表单时,我会处理输入并重定向到mywebsite/search /从日期/日期/文本/搜索文本。由于逻辑位于MY_Controller中,所以数据正在被处理多次并且丢失。CodeIgniter通过jQuery提交重定向表单提交
我切换到使用jQuery构建重定向字符串,并执行重定向,它工作正常。我只是检查一下,看看这是否会产生任何安全影响,或者如果有人看到这种方法的任何问题?
这就是所谓的形式jQuery脚本提交
<script type="text/javascript">
$("#do_search").click(function(e) {
e.preventDefault();
var from_date = $(this).closest("form").find("input[name='from_date']").val();
var to_date = $(this).closest("form").find("input[name='to_date']").val();
var search_text = $(this).closest("form").find("input[name='search_text']").val();
var first = window.location.pathname;
first.indexOf(1);
first.toLowerCase();
first = first.split("/")[1];
var redir_url = window.location.protocol + '//' + window.location.host + '/' + first + '/search/' + from_date + '/' + to_date;
if(search_text !== ''){
redir_url = redir_url + '/text/' + search_text;
}
$('#search').attr('action', redir_url).submit();
return false;
});
</script>
产生的URL在MY_Controller处理,会话变量保持和URL正确解析。我正在使用CSRF和活跃的记录,所以我相信这是一种安全的方法,但希望与您的专家核对。
Daniel,我不是很精通JS,我一旦提交数据就验证PHP/Codeigniter中的输入。你是说我应该检查JQuery中的输入吗? – ReeseB