我想验证用户在表单中输入的数据。我只有一个用户名和两个密码字段。我的第一个问题是,我用javascript检查数据,它工作正常,但我想用PHP检查数据,因为javascript无法正常工作。如果javascript不工作,将从php代码检查数据,但我的问题是,如果javascript正在工作,那么数据也将从javascript和php检查。这样好吗?当javascript检查输入数据时,有什么办法可以避免用php检查?另外我正在检查输入(用户名和密码)的字符数,字符数(我不允许使用特殊字符,只有“_”,“。”数字和字母以避免sql注入) - 它是如何做的听起来对你?您对更好的验证还有其他建议吗?
提前谢谢你。
答案 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开发经验的人都可以操纵客户端脚本,但服务器端脚本不能。
客户端脚本验证专业人员:
服务器端验证专业人员:
简而言之,两者都做得很好,实际上要比做其中一个更好。