2017-09-21 63 views
0

我使用的是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和活躍的記錄,所以我相信這是一種安全的方法,但希望與您的專家覈對。

回答

0

您只是從表單輸入中獲取日期信息並從中構建一個URL。這種方法沒有什麼不安全感。

0

我認爲沒有安全問題,如果用戶在search_text輸入中寫入特殊字符,就會出現問題。你應該在提交之前進行預驗證

+0

Daniel,我不是很精通JS,我一旦提交數據就驗證PHP/Codeigniter中的輸入。你是說我應該檢查JQuery中的輸入嗎? – ReeseB