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

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

问题描述:

我在使用PHP的服务器中创建表单,但我正在考虑使用表单提交的jQuery。验证表单输入客户端(JS)与服务器端

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

+1

我认为你在这里误解了一些东西。无论您是否使用jQuery,接收端都会有一个服务器端脚本(如PHP)。我想你是在问jQuery与标准的HTML表单。 – 2011-02-04 20:43:35

+0

好吧,您可以在正常的'发布'提交和JavaScript抓取提交之间进行争论,发送异步帖子,因此它“没有重新加载”。 – Nanne 2011-02-04 20:45:11

+0

重复的http://stackoverflow.com/questions/4405546/client-side-validation-javascript-or-server-side-validation-php – Kissaki 2011-02-04 20:49:05

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

我发现自己越来越喜欢微软的MVC架构,因为版本3在服务器端验证逻辑和jQuery验证插件之间有very nice integration。有没有看过一段时间,但可能有这样的PHP框架?

永远不要相信客户。因此,为了方便用户,JavaScript表单验证只能是一个优点,但绝不是唯一的验证机制。借助一些webdev知识,您可以解决JavaScript问题,并使用您喜欢的数据发送表单。

带有信息性消息的JavaScript验证对于用户来说可能是一个巨大的优势,所以您绝对应该将其视为用户级验证。

另外,请记住,有些用户可能默认不使用JavaScript。

你应该两个都做!

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

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

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

假设你的意思是使用JavaScript来验证,然后将其发送服务器端(其中,作为@pekka说,是给定的),那么你必须为PRO/CON的jQuery/JavaScript本

亲:

  • 快速简单的验证。你可以做到这一点,而不是一次。

CON:

  • 有些人还是不喜欢在自己的网页额外/ unneccesairy的JavaScript。但我不认为这是一个大骗局。

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

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

任何客户端验证必须在服务器端完成(其他方式不是必须的)。