2010-05-28 133 views
3

这是一个普遍的问题,但我做了一个桌面应用程序。验证输入的用户数据

我应该检查例如超过50个字符的名字,或者这是一个味道的问题?

或者我应该检查> 50个字符,因为用户可能洪泛我的数据库1000000个字符?

编辑:

好像我做滚动的球......我应该说,那名字/姓氏在我的桌面应用程序是从学生教师进入...

所以50个字符是绰绰有余的进入“迈克尔”和“克莱默”你不觉得? ;-)

+0

你总是需要更多的unitl:P – 2010-05-31 21:03:20

回答

1

您应该始终验证您的输入数据。如果没有别的,我假设你的数据库字段是一个set字段,所以你应该阻止用户输入更长的字符串,因为你不能存储它们,所以当DB插​​入失败时,太长的名字可能会引发某种错误。

+0

不是“可能”。会抛出一个错误。 – 2010-05-28 12:09:41

+0

@Cyclon Cat - 通常是的,但可能依赖于数据库,我对使用某些数据库(或至少某种数据存储)只是截断了数据有一些模糊的记忆。 – 2010-05-28 12:35:00

0

世界的方式多种多样,而对于WASP的第一个名字,50个角色看起来像很多,但我不会出门在外,并且宣称任何地方都没有人没有更长的时间一。相反,我会确保我的应用程序永远不会使用任何固定长度的缓冲区,所以如果有人输入了一个长度为10,000,000个字符的名字,那么所发生的只是比平时多使用几个字节。

+1

Like 10,000,000字节更多 – 2010-05-28 12:15:39

+0

如果您必须将其保存在数据库中,该怎么办?名称的“TEXT”字段? 50对于名字来说绝对太短,但是10,000,000可能有点太长。 – MusiGenesis 2010-05-28 12:17:43

+0

没有固定宽度的数据库中的文本字段将是一个好的开始。 – 2010-05-28 12:19:45

0

另外请记住,虽然大多数人没有任何单个名称的长度超过50个字符,但他们可能会有非常多的名称。例如,考虑阿道夫·布莱恩先生查尔斯·戴维厄尔弗雷德里克杰拉尔德休伯特Irvin约翰肯尼斯劳埃德马丁尼禄奥利弗保罗昆西兰道夫谢尔曼托马斯Uncas维克多威廉Xerxes Yancy宙斯Wolfeschlegelsteinhausenbergerdorft资深。不让用户输入他们的全名是一件几乎完全可怕的事情。

+0

更不用说前缀和后缀。如果你不允许这些,你可能会有姓氏,如“史密斯,小”。或“史密斯三世”。 – 2010-05-28 12:13:09

+0

当然,还有标题和称呼。 – 2010-05-28 12:14:37

0

多级验证策略通常是合适的。在用户级别,不允许任何会导致以后出错的事情。但是,如果您依靠JavaScript验证,请注意它可以轻松绕过。您的业​​务和/或数据层也应该在存储到数据库之前进行验证。如果您要将数据发送到服务,情况也是如此。

客户端验证的可用性。服务器端验证可靠性和完整性。