使用CodeIgniter,URL不会返回到原始URL

时间:2014-03-07 17:01:28

标签: php function codeigniter redirect

这是我的控制器的一个功能,它将加载页面

public function view_7th(){
        $floor = "7";
        $data = $this->get_cells($floor);
        $this->load->view('pages/7thFloor', $data);
    }

并激活一个单元格,这是我的代码

public function activate_cell(){
    $cell = $this->uri->segment(3, 0);
    $emp = $this->uri->segment(4, 0);
    $floor = $this->uri->segment(5, 0);

    $this->m_floor->activate_cell($cell, $emp, $floor);

    $this->view_7th();
}

它正确重定向但URL保持

http://localhost/seatplan/c_floor/activate_cell/6K/047/7

因此,如果用户意外刷新页面,它将再次插入数据库中。 我知道您可以使用重定向,但还有其他选择吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

URI不应更改,因为未发送新请求。 当您在成功页面上发送表格BTW时也是如此,如果您刷新,您将再次提交表格。(当您刷新POST reuqest时)。

你必须重定向以避免这些问题或添加一个标志来检查所述记录是否已经在数据库中(如果它们应该是唯一的)。

用户也可以出于某种原因为该链接添加书签,并尝试使用该链接访问您的页面,从而强制数据库中的其他条目。 无论如何你都需要处理多个数据库条目(以使其更安全)。