您好我一直在使用坦克認證的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表單提交確認消息