Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter URL问题!点击刷新会导致函数被执行!_Php_Codeigniter_Refresh - Fatal编程技术网

Php Codeigniter URL问题!点击刷新会导致函数被执行!

Php Codeigniter URL问题!点击刷新会导致函数被执行!,php,codeigniter,refresh,Php,Codeigniter,Refresh,可能重复: 我有一个名为submit的控制器: 基本上,它做了两件值得关注的事情: 验证表单()-它验证表单->然后提交到 数据库 success()-它加载一个页面,提供有关 上次操作成功 我的控制器工作正常,但在加载我的成功页面时有一个小问题。 如果点击“刷新”“成功”页面,由于某种原因,将导致我的validate_form()函数再次运行,从而导致相同的数据在数据库中重复 我想要的是,当用户进入“成功”页面时,他们可以随意多次点击“刷新”,并且不会调用任何函数等。 我在成功视图上的url

可能重复:

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

基本上,它做了两件值得关注的事情:

  • 验证表单()-它验证表单->然后提交到 数据库
  • success()-它加载一个页面,提供有关 上次操作成功
  • 我的控制器工作正常,但在加载我的成功页面时有一个小问题。 如果点击“刷新”“成功”页面,由于某种原因,将导致我的validate_form()函数再次运行,从而导致相同的数据在数据库中重复

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

    我在成功视图上的url是

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

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

    //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 );
    
            }
    

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

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

    好的,我尝试了重定向,但现在我遇到了一个问题,即我以原始方式传递的变量没有传递到视图,导致了错误(未定义)。如何使用重定向传递变量?您可以使用在请求之间存储/检索值。看看flashdata部分,它可以完成您需要的工作。好的,我尝试了重定向,但是我现在遇到了一个问题,我以原始方式传递的变量没有传递到视图,并且导致了一个错误(未定义)。如何使用重定向传递变量?您可以使用在请求之间存储/检索值。看看flashdata部分,它可以完成您需要的工作。