代码点火器URL问题!点击刷新会导致函数被执行


Codeigniter URL problem! Hitting refresh causes functions to be executed!

可能重复:
如何访问由另一个函数设置的PHP类中的变量?代码点火器

我有一个名为submit的控制器:

基本上,它做了两件令人担忧的事情:

  1. validate_form((-它验证表单->然后提交给数据库
  2. success((-它加载一个页面,给出是否上一次操作成功

我的控制器工作得很好,但是当它加载我的成功页面时有一个小问题。如果您点击刷新"成功"页面,出于某种原因,它会导致我的validate_form((函数再次运行,导致数据库中重复相同的数据。

我想要的是,当用户进入成功页面时,他们可以随意点击刷新次数,并且不会调用任何函数等。

我在成功视图上的url是

http://localhost/site/validate_form

我猜这就是问题所在,因为它仍在validate_form((函数中。

我的validate表单函数通过调用其中的另一个函数来加载成功视图?这是我的代码:

//Record ID = returned value
                        $record_id = $this->submit_model->create_record($completedstaffrows, $completedeventrows);
                        //if no value returned call failed function
                        if ($record_id == FALSE)
                        {
                            $this->failed();
                        }
                        //Submittal to database was successful
                        //Now call function to load success view
                        else
                        {
                            $this->success();
                        }

我加载成功视图的功能:

    public function success()
        {
            $page['page'] = 'success';
            $this->load->view('template', $page );
        }

您需要的是Post/Rerect/Get模式。提交表单后,可以使用会话变量301重定向到同一页面,以了解数据是否有效,这样可以防止刷新时出现任何重复数据问题。