在php中验证输入数据 - javascript

时间:2012-04-17 21:33:51

标签: php javascript

我想验证用户在表单中输入的数据。我只有一个用户名和两个密码字段。我的第一个问题是,我用javascript检查数据,它工作正常,但我想用PHP检查数据,因为javascript无法正常工作。如果javascript不工作,将从php代码检查数据,但我的问题是,如果javascript正在工作,那么数据也将从javascript和php检查。这样好吗?当javascript检查输入数据时,有什么办法可以避免用php检查?另外我正在检查输入(用户名和密码)的字符数,字符数(我不允许使用特殊字符,只有“_”,“。”数字和字母以避免sql注入) - 它是如何做的听起来对你?您对更好的验证还有其他建议吗?

提前谢谢你。

5 个答案:

答案 0 :(得分:2)

您应始终对userinput进行服务器端(php)验证。客户端(javascript)验证仅对更好的用户体验有益。此外,您不应该将输入限制为某些字符以防止mysql注入,还有其他可靠的方法。

答案 1 :(得分:2)

是的,您应该验证客户端(JS)和服务器端(PHP)。

在客户端上这样做是为了方便您的用户并提供更好的用户体验。

在服务器上执行此操作以防止恶意攻击,或者如您所述,以防您的用户已禁用JS。

答案 2 :(得分:2)

您应始终执行服务器端验证。无法保证客户端验证(例如javascript验证)无法被取消。这是一个简单的练习来获取一个调试工具(现在任何许多都内置到浏览器中)并绕过javascript验证。

通常没有任何错误,甚至建议在Javascript和PHP的两个地方进行验证。

答案 3 :(得分:1)

检查两种方式都很好,绝对值得推荐。如果你想避免使用PHP检查是否启用了Javascript,你可以在表单中附加一个隐藏字段,然后用PHP检查。

E.G。

if(!isset($_POST['js_hidden_field'])) {

    // Run Validation 

}

因此,检查隐藏字段,如果未设置,则运行PHP验证

答案 4 :(得分:1)

这实际上很好,我认为你永远不会做太多的验证。任何具有Web开发经验的人都可以操纵客户端脚本,但服务器端脚本不能。

客户端脚本验证专业人员:

  • 在提交数据之前提醒用户,允许他们自行更正
  • 使您的网站看起来更复杂

服务器端验证专业人员:

  • 没有人可以更改您的任何验证规则
  • 他们无法关闭服务器端验证。

简而言之,两者都做得很好,实际上要比做其中一个更好。