验证表单输入客户端(JS)与服务器端

时间:2011-02-04 20:37:37

标签: php jquery validation forms

我正在使用PHP在服务器上创建一个表单,但我正在考虑使用jQuery进行表单提交。

那么,哪个选项更好?一个PHP脚本,它接受表单,在那里验证东西并在出错时发送消息,或者发送表单而不重新加载的jQuery脚本?优缺点都有什么?先谢谢你了!

6 个答案:

答案 0 :(得分:6)

你应该同时做到这两点!

服务器端验证始终更安全然后在客户端站点上。

客户端网站验证非常适合可用性,因为如果出现问题,用户将从脚本获得即时反馈。并且用户在获得一些反馈之前不必先将数据发送到服务器。

答案 1 :(得分:2)

我总是将验证放在服务器端,因为客户端逻辑最终是不可靠的(如果有人禁用javascript会发生什么?打开firebug来改变事情?)。我认为客户端验证是UX的一个奖励。这并不是说你不能使用类似jQuery validate plugin之类的东西来添加客户端逻辑,但我不会仅依赖 来构建客户端逻辑。

我发现自己变得喜欢微软的MVC famework,因为版本3在服务器端验证逻辑和jQuery validate插件之间有very nice integration。有没有看过一段时间,但在PHP框架中可能有类似的东西?

答案 2 :(得分:1)

永远不要相信客户。因此,为了方便用户,JavaScript表单验证只能是一个加号,但永远不是您唯一的验证机制。通过一些webdev知识,您可以使用JavaScript并使用您喜欢的数据发送表单。

使用信息性消息进行JavaScript验证对用户来说可能是一个巨大的优势,因此您绝对应该将其视为用户级验证。

另外,请记住,默认情况下可能会有用户不使用JavaScript。

答案 3 :(得分:0)

我同时使用两者。对于验证示例..我将有一个名为“saveData()”的php函数,如果它丢失了一些表单数据,它将抛出异常。另一方面,如果他们启用了javascript,他们可以提交表单并立即查明他们是否缺少数据,而不是重新加载页面以查找。

答案 4 :(得分:0)

假设您的意思是使用javascript进行验证,然后将其发送到服务器端(正如@pekka所说,这是给定的),那么您有jQuery / javascript的pro / con这个

亲:

  • 快速简便的验证。你可以按字段执行此操作,而不是一次完成所有操作。

CON:

  • 有些人仍然不喜欢他们页面中的额外/不必要的javascript。但我认为这不是一个大骗局。

答案 5 :(得分:0)

客户端验证与安全无关。 其目的只是为了提高性能以创造更好的用户体验。

服务器端验证所有关于安全性

任何客户端验证必须在服务器端完成(反过来不是必须的)。