2011-09-27 53 views
0

假設我正在構建登錄系統。用戶在字段中輸入用戶名和密碼,並通過HTTPS將其發送到服務器,該服務器在加載頁面之前驗證登錄。如果發送了錯誤的密碼,登錄顯然會立即失敗,但人們希望錯誤消息稍後顯示在登錄框附近的頁面中。「現在評估,稍後迴應」的最佳實踐?

顯而易見的解決方案是設置一個全局標誌並讓登錄框檢查它並在必要時添加錯誤消息,但我的理解是最好避免使用全局變量。有沒有另一種直接的方法來實現這個功能?

回答

0

對於非AJAX登錄頁面,通常會將用戶瀏覽器重定向到帶有url中額外查詢參數的登錄頁面。在僞代碼中,以下是登錄驗證控制器代碼段:

success = checkLogin(username,password) 
if (success == false) 
    redirect('http://example.com/login?failedlogin=true') 

登錄頁面控制器將負責檢測此查詢參數並告訴視圖代碼顯示失敗消息。我不認爲'全球旗幟'一詞適用於這種做法,所以它應該符合你的要求。

如果登錄頁面使用Ajax,則登錄頁面上的Javascript採用AJAX調用的結果並使用失敗消息更新適當的DOM元素。

+0

將一個標誌放入地址欄看起來像是一個非常骯髒的解決方案 - 甚至比拋出一個全局變量更糟。我認爲一般的經驗法則是$ _GET數組只應用於不關心人們直接鏈接到結果頁面的人。 –