代码之家  ›  专栏  ›  技术社区  ›  C. E.

在Codeigniter中处理post数据的好方法是什么?

  •  4
  • C. E.  · 技术社区  · 15 年前

    function save()
    {
        if(!is_bool($this->input->post('')))
        {
            $post_data = $this->input->post('');
            $this->mymodel->save($post_data);
        }
        $this->load->view('myview');
    }
    

    或者你会推荐用两种方法写吗?

    function save()
    {
        if(!is_bool($this->input->post('')))
        {
            $post_data = $this->input->post('');
            $this->mymodel->save($post_data);
        }
        redirect('controller/method2')
    }
    

    重定向是这里的关键区别。例如,它禁止重新提交更新。

    你是怎么做到的?还有更好的办法吗?

    3 回复  |  直到 11 年前
        1
  •  12
  •   Aren    15 年前

    你应该 总是

        2
  •  9
  •   wally    14 年前

    你应该 总是

    当然。对于任何想知道 为什么? 这种情况下,有几个原因:

    • . 当你无意中点击刷新或者点击后退按钮 ,所有内容都已重新提交?
    • . 如果您的用户将页面添加到书签中,您可能希望他们返回创建页面的位置,而不是空白表单(重定向使他们将确认/登录页面添加到书签中)。

    http://en.wikipedia.org/wiki/Post/Redirect/Get

        3
  •  3
  •   DrColossos    15 年前

    正如arenb所说,重定向是一个好主意,但是我将在您的代码中更改的是,post数据的验证应该使用表单验证功能来完成。它不仅更加实用,而且代码也会变得更短。

    推荐文章