Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 如何删除储罐认证上的“确认表单重新提交”_Php_Codeigniter_Tankauth - Fatal编程技术网

Php 如何删除储罐认证上的“确认表单重新提交”

Php 如何删除储罐认证上的“确认表单重新提交”,php,codeigniter,tankauth,Php,Codeigniter,Tankauth,您好,我一直在使用tank auth for CI,我觉得这太棒了,我只是想知道是否有办法更改它,以便当用户在登录错误后刷新登录页面时,“确认表单重新提交”弹出窗口不会显示。我一直在阅读post-redirect-get方法,但我不想搞砸tank-auth。ps-im pretty noobish此“确认表单重新提交”来自您的web浏览器,而不是Tank Auth。 不久前,有人编写了一个网络浏览器,意识到重新发布是一个大问题,所以他们发出警告,停止ppl重复发布等 我可以想出两种方法来避免它

您好,我一直在使用tank auth for CI,我觉得这太棒了,我只是想知道是否有办法更改它,以便当用户在登录错误后刷新登录页面时,“确认表单重新提交”弹出窗口不会显示。我一直在阅读post-redirect-get方法,但我不想搞砸tank-auth。ps-im pretty noobish

此“确认表单重新提交”来自您的web浏览器,而不是Tank Auth。 不久前,有人编写了一个网络浏览器,意识到重新发布是一个大问题,所以他们发出警告,停止ppl重复发布等

我可以想出两种方法来避免它

1将登录名“post”设置为“get”。 这是个坏主意。因为您的密码在查询字符串中

2在auth controller中,在登录失败时重定向到登录表单的错误显示版本,而不是再次加载登录表单视图

基本上,您可以通过查询字符串或会话将错误消息传递给登录表单。重定向到该页面。这很容易,因为tank auth使用语言键来处理错误

我只是尝试将其作为查询字符串。。看起来还可以,但是我的坦克认证修改得很厉害

我把它添加到controllers/auth.php,就在它说//失败的部分之后

这将获取tank auth生成的登录错误密钥,并将其传递回http://yoursite/auth/login 作为查询参数

然后在登录函数的顶部,我放置了以下内容:

function login($error = ''){
    if ($error != '') {
        $data['errors']['login'] = $this->lang->line($error);
        $this->load->view('auth/login_form', $data);
    }
如果参数存在,则此代码将获取该参数。。然后从语言文件中获取相应的行,然后加载登录表单

注意:这将只处理“登录”错误。您需要传递更多的查询参数来处理验证错误之类的事情

//编辑 我想我应该试试这种方式。。而且更整洁

这是在//失败点

类似的内容出现在views/auth/login\u form.php中,而不是表单错误所在的位置

<? if ( $this->session->flashdata('login_error') != '') {
    echo '<p style="color:#f00;">'.$this->session->flashdata('login_error').'</p>';
} ?>
$this->session->set_flashdata('login_error', $this->lang->line($errors['login']));
redirect('/auth/login');
<? if ( $this->session->flashdata('login_error') != '') {
    echo '<p style="color:#f00;">'.$this->session->flashdata('login_error').'</p>';
} ?>