您好我一直在使用坦克认证的CI,我认为这是真棒,我只是想知道是否有一种方法来改变它,所以当用户刷新登录页面登录错误后),“确认表单重新提交”弹出窗口不显示。我一直在阅读后重定向get方法,但我不想搞乱坦克认证。 ps - im pretty noobish如何删除'确认表单重新提交'坦克认证
1
A
回答
0
此'确认表单重新提交'来自您的网络浏览器,而不是来自Tank Auth。 前段时间有人编码的网络浏览器意识到重新发布是一个大问题,所以他们发出警告,停止双重发布等。
我可以想出2种方法来避免它。
1)将登录'post'设为'get'。 这是一个坏主意。因为您的密码在查询字符串中
2)在auth控制器中,在登录失败时重定向到登录表单的错误显示版本,而不是再次加载登录表单视图。
基本上你会找到一种方法来通过查询字符串或会话将错误消息传递给登录表单。重定向到该页面。坦克验证使用语言键来处理错误很容易。
我只是试过它作为查询字符串..似乎工作正常,但我的坦克auth是相当大的修改。
我在那里说://fail
redirect('auth/login/'.$errors['login']);
这需要通过罐权威性产生登录错误的关键,并将其传递回http://yoursite/auth/login
作为查询参数的部分之后添加到了controllers/auth.php
。
然后在登录功能的顶部,我把这个:
function login($error = ''){
if ($error != '') {
$data['errors']['login'] = $this->lang->line($error);
$this->load->view('auth/login_form', $data);
}
这个代码抓起参数如果有..然后获取语言文件的相应行,然后加载登录表单。
注意这只会处理'登录'错误。你将需要传递更多的查询参数来处理验证错误等事情。
//编辑 我想我会尝试会议的方式..和它更整洁。
这正好在现场//fail
$this->session->set_flashdata('login_error', $this->lang->line($errors['login']));
redirect('/auth/login');
,并像这样进去的意见/ auth /中login_form.php代替form_errors在哪里。
<? if ($this->session->flashdata('login_error') != '') {
echo '<p style="color:#f00;">'.$this->session->flashdata('login_error').'</p>';
} ?>
相关问题
- 1. 阻止“确认表单重新提交”
- 2. 如何删除确认重新提交表单中铬和瓶子框架
- 3. 确认表格重新提交绕道
- 4. 坦克认证使用md5
- 5. Codeigniter坦克认证安装
- 6. CodeIgniter坦克认证错误
- 7. 提交表单前确认
- 8. 提交表单确认
- 9. 表单提交 - 确认
- 10. Javascript确认删除 - 如果没有不提交表单? Codeigniter
- 11. Djquery Modal对Django表单的确认提交删除对象
- 12. 集成CodeIgniter库(如坦克认证)
- 13. Chrome - 确认表单重新提交 - 不同行为
- 14. 让history.back()忽略确认表单重新提交
- 15. Codeigniter阻止'确认表单重新提交'
- 16. 避免表单重新提交后显示确认消息?
- 17. 轨验证确认表提交后
- 18. Codeigniter与坦克认证更新数据库表
- 19. 删除时确认提醒
- 20. jqGrid重新定位删除确认框
- 21. [确认]阿贾克斯提交
- 22. 多个表单提交与认证
- 23. 表单提交问题与认证
- 24. Jquery Ui-Dialog确认表单提交
- 25. jquery-confirm插件 - 提交表单确认
- 26. 使用bootbox.confirm确认表单提交()
- 27. Bootbox在表单上确认提交
- 28. 表单确认之前提交给mysql
- 29. JQUERY模态框确认表单提交
- 30. AJAX表单提交确认消息