可能重复:
如何访问由另一个函数设置的PHP类中的变量?代码点火器
我有一个名为submit的控制器:
基本上,它做了两件令人担忧的事情:
- validate_form((-它验证表单->然后提交给数据库
- 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重定向到同一页面,以了解数据是否有效,这样可以防止刷新时出现任何重复数据问题。