像一般的網站的用戶注冊頁面是采用怎么技術對非法輸入進行驗證的?
我自己之前想到的方案是:
對於用戶名這樣需要唯一性的數據,以及驗證碼需要匹配服務器所生成的圖片的情況時用ajax驗證。
對於密碼,電話號碼,年齡這些僅僅對輸入格式有要求的用js驗證就足夠了。
不過如果用js驗證的話會造成頁面的全部刷新,這樣的話個人覺得之前用ajax就沒有意義了
可是如果把這些驗證全部用ajax做的話覺得可能也有問題,因為ajax技術是需要訪問服務器的,應該會給服務器照成負擔吧
不知道各位是怎么解決的
17 个解决方案
用戶名驗證用ajax 跟后台交互
其他的用js,用onblur這個方法 ,失去焦點判斷!
沒有一個統一的標准吧。看需要去的。正如樓上所說的,如果你是做用戶名重復驗證那你用ajax吧。
如果你是做非空的或輸入字符長度的驗證,那你就用js吧。
對於比較關鍵的數據如密碼賬號,在JS前台驗證后后台也應該進行驗證。如有必要需要加密后驗證。
用js也不用刷新頁面啊,如果只是格式之類的驗證你用表單失去焦點驗證就OK,onblur="js函數",那些需要跟數據庫的數據進行驗證的就用ajax.
至少做好三層驗證:
js驗證:一般驗證用戶輸入格式和判斷非空
后台驗證:一般驗證輸入的正確性(如你剛才說的用戶名,也可以先用ajax傳來驗證一次,這只是針對用戶體驗,ajax驗證后還是要在后台再驗證一次的),這里要把js驗證的一起再驗證一遍。
數據庫:這個主要是數據庫自行驗證,比如非空,長度,數據類型等。數據庫出錯,那直接回滾事務。拋出異常。
糾正樓主的觀點:js校驗不會使頁面全部刷新。。除非你校驗之后做了頁面的重載。。。
不管是ajax驗證重復用戶名 還是js 的 onblur 驗證 提交到后台插入數據庫之前時 還是要驗證的 前端驗證只是增強了用戶體驗 后台驗證才是關鍵