多次验证相同的输入字段是一个好习惯吗?

时间:2017-04-11 01:48:19

标签: php forms validation

我使用一些现有的PHP框架参与了一个Web开发项目。 Web应用程序涉及从Web表单中获取一些用户输入数据,然后将数据以及一些内部生成的数据保存到数据库中的各个表中。当我调试现有代码时(当然,代码不是由我设计的),我发现现有代码多次验证相同的输入字段。 Web表单本身有大约10个输入字段。但是跟踪结果表明,仅StringValidator就有大约250次点击。我还没有计算其他验证器的命中数(例如IntegerValidators等)。

我在这里讨论的所有验证都在后端,并且验证规则对于相同的输入字段是相同的 - 也就是说,代码现在只是在同一输入上多次使用相同的验证规则领域。例如,ID为“first_name”的字段,代码验证该字段是否是字符串的5或6次。我不是在讨论用几个不同的验证器验证相同的输入字段(例如,必需,字符串,不包含异国情调的字符等)。

那么,您如何看待这种编码实践:好,好,坏?或者这种浪费PHP的执行时间还可以吗?

非常感谢您的意见!

2 个答案:

答案 0 :(得分:2)

如果您正在查看的内容在检查之间没有变化,那么一遍又一遍地重新验证同一件事是没有意义的。检查一次然后继续。不这样做是不好的做法,只是浪费时间,因为如果你检查的东西没有改变,你的结果也不会改变。

我希望这有帮助!

答案 1 :(得分:1)

在我看来,在验证方面,可以多次验证相同的输入。会有一些情况,例如:

  • 该字段必须包含特定数量的字符
  • 该字段不得包含特殊字符(或仅ascii字符)
  • 该字段必须存在于某个数据库记录中
  • 该字段的记录(已找到)必须有一些特权才能采取某些行动。

但是使用250验证计算10个字段,我认为这太多了。你必须分解代码并找到它在做什么。如果它运行相同的验证规则超过两次,那就太糟糕了。

为什么我说两次是好的?当我们在前端验证输入时,然后使用规则A进行ajax验证。然后在提交过程中,我们再次检查以在服务器中再次使用规则A进行验证。

相关问题