0

我有更多关于我的代码的一般性问题。我正在为我的网站添加验证码(检查长度并去除非法字符)。但我想知道我是否要先和最后一个人的名字。我应该检查名称字段中字符的长度吗?

如果是这样,那么名称的最小和最大长度是多少。我在想3-20个字符。但是,如果某人的名字确实长于 20 个字符,我真的不想限制名字。任何反馈都会非常感谢:)

4

1 回答 1

0

我发现VARCHAR(32)名字和姓氏字段就足够了,我建议对它们做的唯一一件事是在插入之前进行遍历htmlspecialchars()因为有些人的名字中合法地有大多数人的“奇怪”重音或非 ascii 字符不要考虑检查preg_match('/[a-z]+/i', $name);,以及参数化查询的组合[您正在使用这些,对],htmlspecialchars()应该保护您免受一阶和二阶注入攻击。

您可以使用iconv()将他们的名字音译/改写为 ASCII,但这是命中注定的,再加上屁股的痛苦,而且有些人可能会对此感到生气。

另一方面,如果您担心字段长度的空间效率,您应该知道VARinVARCHAR表示“可变长度”,而VARCHAR(32)包含“Ted”的字段将只占用4 个字节的存储空间

于 2013-10-15T19:05:15.857 回答