什么是处理Codeigniter中的帖子数据的好方法?

C. *_* E. 4 php forms codeigniter

即,你会建议我使用这样的控制器方法:

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

或者您会建议使用两种方法编写它吗?

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

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

你怎么做呢?还有另一种更好的方法吗?

Are*_*ren 11

您应该始终重定向成功的表单帖子.


wal*_*lly 8

您应该始终重定向成功的表单帖子.

绝对.对于任何想知道为什么会这样的人,有以下几个原因:

  • 避免"重复提交".有没有当你无辜地点击刷新或点击后退按钮和wham,一切都重新提交?
  • 对书签友好.如果您的用户为该页面添加了书签,可能您希望他们返回创建该页面的位置,而不是空白表单(重定向会使他们为确认/登录页面添加书签.

进一步阅读:http: //en.wikipedia.org/wiki/Post/Redirect/Get