加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读