2009-11-02 78 views
1

我完成了在PHP中使用javascript对表单进行验证。在php中验证表单的需求是什么?

什么时候需要PHP验证?

JavaScript验证本身可确保所有字段都已填满。是否有可能使用javascript检查输入的有效格式?

+0

“javascript验证本身*确保*所有字段都已填满” - 是否? JS很容易绕过;) – mpen 2009-11-02 06:34:32

回答

11

客户端(JavaScript)的验证只是为了帮助无辜的用户发现他们的形式中的任何错误,而不需要去一趟服务器和页面重载。

需要进行服务器端(PHP)验证,以防止恶意用户向您的服务器提交格式错误的查询并获得对您的数据的访问权限。

请注意,客户端验证仅适用于您制作的表单。恶意用户可以自己制作表单并很容易地提交给服务器 - 因此完全绕过了客户端验证。

结论:您需要两种形式的数据验证。

+0

这是一个好主意,使用一个框架,可以帮助你在一个:http://onlamp.com/pub/a/php/2007/09/13/quick-and-clean-php-forms.html – Natim 2009-11-02 09:34:51

0

是的,如果JavaScript被禁用在客户端broser然后服务器端验证是必要的。

5

使用javascript进行验证对于可用性非常有用,但是如果没有服务器端验证,您可以开放给恶意输入和不良数据。

+1

尤其是如果你正在处理小鲍比表的数据 - http://xkcd.com/327 – jheddings 2009-11-02 06:10:15

3

的Javascript确保验证客户端,但是:

  • 可以禁用
  • 形式可以通过一个“坏家伙”,从一个自定义页面

这样既可以提交到服务器是必需的恕我直言

1

一般来说,用户可以控制什么数据提交给表单处理程序,所以你需要验证和消毒它之前,它是安全的。她甚至可能不使用浏览器。

0
telnet yoursite.com 80 
GET /yourapp.php?name=');drop%20table%20users;-- HTTP/1.1 
Host: yoursite.com 

当你不做服务器端的卫生设施时,会发生坏事。

稍微不那么重要,比阻止你的网站被拥有一点知识的任何人拥有,并不是每个人都会打开javascript,所以你想为他们提供有价值的错误信息(更不用说,避免运行用不好的数据,用空的电子邮件地址或名字创建用户,作为非恶意的例子)。

0

但是同时使用两种验证的目的是什么?因为如果javascript验证成功,那么服务器在php中验证表单输入是额外的负担。我们不能使用标志并根据javascript验证是否成功设置或取消设置它的值?如果设置了标志值,我们将跳过php验证。这不可能吗?如果这是不可能的,你可以解释一个有效的现实生活中的例子吗?或者,即使我们将它传递给标题,用户是否可以修改该标志的值?等待一些合乎逻辑的答案。谢谢。