CodeIgniter重定向表单通过jQuery提交

时间:2017-09-21 15:22:16

标签: jquery codeigniter-3

我正在使用Codeigniter 3,由于MY_Controller,我在表单提交时使用重定向时出现问题。基本上我有一个包含日期和文本的搜索表单,我使用基于表单输入的URI段重定向到MY_Controller。即在我的基本网站URL提交表单时,我会处理输入并重定向到mywebsite / search / from date / to date / text / search text。由于逻辑在MY_Controller中,数据被处理的次数超过一次并且丢失了。

我切换到使用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>

在MY_Controller中处理生成的URL,维护会话变量并正确解析URL。我正在使用CSRF和活跃记录,所以我认为这是一种安全的方法,但是想与您联系。

2 个答案:

答案 0 :(得分:0)

您只是从表单输入中获取日期信息并从中构建URL。这种方法没有什么不安全感。

答案 1 :(得分:0)

我认为没有安全问题,如果用户在search_text输入中写入特殊字符,就会遇到问题。您应该在提交之前预先验证