[英]Clear form data after success codeigniter using php not jquery
[英]In CodeIgniter, how to clear “form data” after redirecting page
我不確定我在問題標題中是否正確解釋了它,所以這里是詳細信息:
Login
控制器:
function authenticate() {
if ( authorized ) {
redirect('lobby');
} else {
redirect('login');
}
}
Lobby
控制器:
function index() {
//load lobby view
}
發生的是,在登錄頁面中,我輸入用戶/密碼,單擊登錄,然后調用authenticate()
,並將我重定向到Lobby
。
但是,當我在“大廳”上單擊“刷新”時,再次提交了登錄表單,因此我再次“登錄”。 如何防止這種情況發生?
您所看到的是瀏覽器本身與CodeIgniter不相關的行為。 Web瀏覽器存儲登錄表單的POST數據,並在用戶單擊“提交”按鈕時導航到表單的操作。 來自服務器的響應是重定向。 因此,當用戶單擊刷新按鈕時,瀏覽器將刷新表單操作,而不是服務器的重定向響應。
您有兩種選擇可以解決或避免這種情況。 首先想到的是在authenticate方法中進行檢查,以查看用戶是否已經登錄。如果已經登錄,則繼續並重定向到大廳。 否則,請照常檢查用戶的登錄信息。
您也可以僅更改登錄表單的操作以直接進入大廳並使用大廳的index方法進行身份驗證。 如果用戶未登錄,則將其從那里重定向回登錄表單。
您應該使用控制器在構造中驗證用戶是否登錄,以這種方式,您可以基於會話變量進行重定向或不進行重定向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.