考慮這兩個簡化的場景:在同一頁面或不同頁面上進行表單驗證?
Script Name: script1.php
Validate form fields and if validated; redirect user to another page...
<form action=script1.php>
form fields.....
</form>
第二場景:
Script Name: script1.php
<form action=script2.php>
Form fields.....
</form>
Form fields are posted to script2.php and validated there and then the user is redirected to the next page...
是表單驗證的第一方法(相同的腳本內)比第二方法(形式數據發送到更好「中間頁面「進行驗證/數據庫輸入,然後重定向),或者比第一個更好,爲什麼?
都沒有。驗證客戶端。 https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation這裏有很好的polyfills。 (顯然,這並不意味着盲目地信任用戶輸入。但是,至少這意味着如果你得到了垃圾數據,而不是試圖弄清楚它出了什麼問題,並在用戶頁面重新加載後浪費用戶的時間返回一個友好的錯誤,那麼你可以拋出一個異常,讓它冒泡因爲無論錯誤是否合理(如果沒有其他內容,可能是500內部服務器錯誤)並繼續。) – Brad
僅僅依靠客戶端驗證是很危險的,因爲用戶可以很容易地禁用它。除了客戶端的服務器端驗證是必需的。 – Nikster2014
您是否閱讀了我的評論的其餘部分?關鍵是,任何友好的驗證都應該在客戶端完成。任何實際的數據完整性安全要求都應在服務器上。通常如果您的數據模型設置正確,則會自動進行。 – Brad