Javascript html表单输入字段验证的正确方法是什么

Javascript html表单输入字段验证的正确方法是什么,javascript,php,forms,validation,Javascript,Php,Forms,Validation,我想知道表单字段的验证。我一直在通过客户端脚本(如JavaScript)和PHP进行验证。如果用户关闭JavaScript,客户端验证当然不会工作。那么我们为什么同时进行服务器端和客户端验证呢。我的意思是服务器端验证不足以代替客户端验证吗 我相信,正则表达式是用来过滤垃圾或无效数据格式的,用户可能会意外地或根据自己的选择输入这些格式。例如,电子邮件地址的输入字段,但用户输入了1233456。所以,这是垃圾。在与数据库交互之前,应该验证数据 在与数据库交互之前,我可以使用模型-视图-控制器设计模式

我想知道表单字段的验证。我一直在通过客户端脚本(如JavaScript)和PHP进行验证。如果用户关闭JavaScript,客户端验证当然不会工作。那么我们为什么同时进行服务器端和客户端验证呢。我的意思是服务器端验证不足以代替客户端验证吗

我相信,正则表达式是用来过滤垃圾或无效数据格式的,用户可能会意外地或根据自己的选择输入这些格式。例如,电子邮件地址的输入字段,但用户输入了1233456。所以,这是垃圾。在与数据库交互之前,应该验证数据

在与数据库交互之前,我可以使用模型-视图-控制器设计模式在控制器内部进行此类验证吗。这是一种好的做法吗


请引导我,如果我错了,请纠正我。谢谢

使用javascript纯粹是帮助用户的一种方式。它对用户友好,因为在用户提交数据之前,它是经过验证的。 服务器端验证应该始终进行,因为javascript可能被禁用,所以服务器端验证纯粹是安全性和输入验证

因此,您可以将javascript验证排除在应用程序之外,但如果您不这样做,它确实会使您的应用程序更容易使用


如果你不喜欢javascript,你也可以使用HTML5验证器,比如使用“required”属性:,但就像javascript一样,它不能确保进行验证,因此总是需要服务器端验证

客户端验证是为了简化用户体验、给他一些反馈、输入的工具提示等等。我总是做服务器端的工作,然后添加ajax,这样页面就不会重新加载,用户可以快速得到反馈。如果关闭JS,服务器端仍然可以工作,而不会再次触碰代码。

你说得对。在数据库查询之前,主要验证必须在服务器代码处进行。也可以在客户端进行正确的验证,这样验证速度更快,并且不发送服务器请求

不,这还不够。提交表单后,应始终在服务器端验证数据。提交表单之前的客户端验证和AJAX验证通过提供对无效数据的更快反馈,只会增强用户体验。客户端验证和AJAX预提交验证都不能保护您免受恶意编写的表单提交。攻击者和滥用者通常甚至不使用浏览器向您的服务器提交数据。

是的,完全正确。双方都有以下好处:

服务器端验证:必须始终存在,客户端很容易中断,并且您不希望数据库中有坏数据

客户端验证:是可选的,但是很好。主要用于不接收来自客户端到服务器的不必要请求。客户不爱提出要求,也不爱提供服务

对于客户端验证,最好的插件工作正常,文档不完整,但有一个良好的社区使用


对于服务器端验证,取决于您使用Symfony 2的框架,在组件中进行表单验证

客户端验证是并且应该被视为一种很好的验证。这是一种在向服务器发出请求之前通知用户他/她搞砸了某件事的方法。并非所有的web用户都关闭浏览器的JS,只有像黑客这样的高级用户才会试图进入您的系统并做坏事。客户端验证为几乎90%的站点用户提供了方便快捷的响应。因此,最好同时进行JS和服务器端验证。“只有像黑客这样的高级用户才会试图进入您的系统并做坏事。”wut??感谢您的帮助。非常感谢@Manolo Salsas非常感谢@Jesus Quintana