php – 防止在Code Igniter中重新发送表单数据
发布时间:2020-12-13 17:40:33 所属栏目:PHP教程 来源:网络整理
导读:我是Code Igniter的新手(我正在学习它的第一个框架). 我在控制器中得到了这个: if ($this-form_validation-run() === FALSE) { $this-load-view('account/register',$data); } else { $data['message'] = $this-lang-line('account_created'); $this-regist
我是Code Igniter的新手(我正在学习它的第一个框架).
我在控制器中得到了这个: if ($this->form_validation->run() === FALSE) { $this->load->view('account/register',$data); } else { $data['message'] = $this->lang->line('account_created'); $this->register->insert_account(); $this->load->view('account/register_success',$data); } 如果表单成功验证,它只会更改视图,但仍然可以点击刷新按钮,并重新发送表单数据 – 这对我来说不是一个大问题,因为我正在检查字段是否唯一,但是对我来说,防止重新发送表单数据会更好. 通常在干净的PHP中我会使用header(“Location:…”);但是我在这里加载一个视图,因此重定向后无法访问它 – 不是吗? 你有什么建议吗? 解决方法
您可以重定向到同一页面,但也可以在会话库中使用codeigniters flashdata.
在表单提交上设置flashdata并显示成功消息. 使用表单重定向到同一页面并显示flashdata成功消息. 通过重定向重新加载页面并阻止刷新. 调节器 在形式上取得成功 $this->session->set_flashdata("success",$strMessage); redirect("account/register"); 视图 这将在表单页面上显示成功消息 if($this->session->flashdata("success") !== FALSE) { echo "<div class="formSuccess">" . $this->session->flashdata("success") . "</div>n"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |