HTML5 验证与 PHP 验证对比

3

在表单验证方面,哪种方法最好?使用HTML5,您可以验证电子邮件地址和电话号码,但通常我会用PHP来做这个工作,那么哪种方法更好呢?或者我应该在HTML5和PHP中验证输入呢?


5
您应该始终在服务器端进行验证,其余部分主要用于提高用户体验(您永远不能依赖客户端验证)。 - Matthew
验证使用标记语言? - Dejan Marjanović
1
@webarto:“用标记语言进行验证?”是的,这是可能的,也是“未来”。有关详细信息和示例,请参见此文章 - Tadeck
6个回答

12

两者都需要。

经验法则:
在客户端进行验证可以为用户提供更好的体验。
在服务器端进行验证可以确保你收到的数据完全符合你的预期。


3
请始终使用服务器端编程语言进行验证,此外您可以使用客户端验证。原因是任何内容都可以在客户端修改,从而绕过任何客户端验证。这并不难,并且有许多工具可用于修改html和/或Javascript以提交他们想要的内容。
黄金法则是永远不要相信用户。预料最坏情况并为其做好准备。您可以使用诸如firebug或其他Web开发工具之类的工具来尝试一些东西。

1
你应该两者都做。在客户端进行HTML5和/或JavaScript验证以节省用户的页面加载时间,并进行PHP验证,因为你永远不能完全信任客户端。

0

大多数专业程序员都采用使用服务器端脚本语言验证输入字段的方法。使用PHP进行服务器端表单验证比HTML5和客户端表单验证更好,有许多方面的优势:

  1. HTML5包含一些属性,可以自动验证输入字段,例如:电子邮件、电话等。这些属性是有限的。而在现实世界中,有许多表单无法通过HTML5直接验证。

  2. 如果您考虑使用JavaScript作为第二个选项进行客户端验证,请记住浏览器中可能会关闭JavaScript。因此,它最终会影响用户体验。因此,最好通过像PHP这样的服务器端脚本语言验证您的表单。

  3. 对于包含敏感数据的网站,您应该采用上述方法。


0

我两者都喜欢。在填写表单时,如果有不匹配的地方得到通知是很好的。但是,你不能依赖JS验证,因为它很容易被绕过,所以需要服务器端验证。


0
答案都是正确的。不是偏好(有些人已经表明),而是必须的。所有的 HTML(包括 HTML5)都可以通过浏览器直接在你的页面上编辑。就像使用 Firebug 来编辑这个页面的标题一样,你可以编辑 HTML 输入验证器,如果它们没有服务器端验证,它将接受你输入的任何内容。只使用 HTML5 处理验证就像邀请黑客来破坏你的所有数据库表格。你想要那样吗?
我在这个愚蠢家伙的网站上找到了这句话作为一个明显的例子:http://demosthenes.info/blog/462/Goodbye-JQuery-Validation-HTML5-Form-Errors-With-CSS3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接