我使用的是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