php - 防止表单数据在 Codeigniter 中发送

标签 php forms codeigniter

我是 Code Igniter 的新手(这是我正在学习的第一个框架)。

我在我的 Controller 中得到了这个:

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

如果表单验证成功,它只会改变 View ,但仍然可以点击刷新按钮,并重新发送表单数据 - 这对我来说不是什么大问题,因为我正在检查字段是否正确独特的,但对我来说最好防止重新发送表单数据。

通常在干净的 PHP 中我会使用 header("Location: ..."); 但我在这里加载一个 View ,所以在重定向后将无法访问它 -不是吗?

你对此有什么建议吗?

最佳答案

您可以重定向到同一页面,但也可以在 session 库中使用 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";
}

关于php - 防止表单数据在 Codeigniter 中发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234255/

相关文章:

php - 使用单个查询选择表中特定行上方和下方的特定数量的项目

javascript - 表单按钮禁用 onsubmit 但表单未在 javascript 中提交

javascript - Javascript 验证后提交表单

php - Opencart 自定义 mysql 搜索表单

php - Codeigniter 的 redirect() 和非标准 url

php - 如何在 codeigniter 中接收 post/get 请求

php - 如何在 codeigniter 4 中加载 css 或 js 文件?

php - WordPress:在页面上添加空行(加载/刷新)

php - 在 MySQL 中选择格式错误的 URL

php安装扩展效果