你的答案很簡單:
BOTH。
首先,在客戶端進行初始驗證。 這不是關於做用戶檢查/認證/權限級別(至少現在還沒有)。 如果您使用AJAX調用來檢查是否有人試圖使用已經註冊的電子郵件地址創建帳戶,或者該類型的「安全」(請清理所有內容)檢查。
這是關於:「這個領域是否通過了白癡檢查」。
這就是JS驗證應該是。 如果失敗,請在該字段上設置css類,以便讓人們在視覺上知道發生了什麼。看看CSS :before
和:after
僞選擇,讓您做這樣的事情(在這種情況下input
)之前添加文本或圖像/你的造型之後的事情
input.valid:before { content : url("checkmark.png") }
input.invalid:after { content : url("big-red-x.png") }
您可以動態地添加的工具提示或者提供關於錯誤的用戶友好信息的消息橫幅。
所有這些東西都可以由知道如何提交POST請求的人得到,使用衆多開發友好的Web解決方案之一(或者只是真正無聊的人,他們會用他們的腳本來做到這一點)自己的服務器,如果你的網站是開放的)。
這就是爲什麼你仍然需要使用PHP進行驗證。
這也是一次消毒一切(或使用PDO作爲數據庫訪問層,並利用他們,消毒前的溶液)。 然後你就可以開始尋找你的數據庫來尋找權威和其他東西了。
如果PHP方面出現錯誤,請將它們轉儲回已存在的頁面,並將其舊值填充。
從那裏,無論是觸發JS驗證錯誤,有一些服務器端的消息... ... 並再次運行JS驗證,在領域 拿起錯誤...也(用於非JS人,儘管你可以在頁面加載中隱藏/刪除它)包含一個靜態的橫幅,用於存放你在PHP中遇到的錯誤列表。
這可以隨心所欲,你可以將所有這一切都運行通過一系列的AJAX調用,PHP錯誤返回到錯誤數組,返回頁面,成爲解析並應用於不適當的領域,或放在某處的中央橫幅...
就像你說的,這是一個非常開放的問題。
所以你的目標從一個高的水平,在客戶端方面是, 1.提供響應(/即時),方便用戶的反饋,當事情是不正確 2.使反饋簡潔,明確,可操作的 3.儘可能地做到不導致我重寫所有內容,或者在頁面之間來回切換 - 最終,夢想是在填寫表單和進入我嘗試訪問的內容之間進行0頁更改。
沒有最好的辦法。有人會提出一件事,有人會建議另一件事,接下來你知道這是人類的犧牲,貓和狗住在一起,羣衆歇斯底里, –
你可以用JS驗證輸入的客戶端,或者將它發送到服務器使用AJAX驗證(最終需要這樣做)。 – Blender
@Marc B在這種情況下,我仍然希望聽到人們的意見,說明爲什麼一種方法可能比另一種更好。我從來沒有編寫過類似的東西,所以任何輸入都有幫助。 – fvgs