我有更多关于我的代码的一般性问题。我正在为我的网站添加验证码(检查长度并去除非法字符)。但我想知道我是否要先和最后一个人的名字。我应该检查名称字段中字符的长度吗?
如果是这样,那么名称的最小和最大长度是多少。我在想3-20个字符。但是,如果某人的名字确实长于 20 个字符,我真的不想限制名字。任何反馈都会非常感谢:)
我有更多关于我的代码的一般性问题。我正在为我的网站添加验证码(检查长度并去除非法字符)。但我想知道我是否要先和最后一个人的名字。我应该检查名称字段中字符的长度吗?
如果是这样,那么名称的最小和最大长度是多少。我在想3-20个字符。但是,如果某人的名字确实长于 20 个字符,我真的不想限制名字。任何反馈都会非常感谢:)
我发现VARCHAR(32)
名字和姓氏字段就足够了,我建议对它们做的唯一一件事是在插入之前进行遍历,htmlspecialchars()
因为有些人的名字中合法地有大多数人的“奇怪”重音或非 ascii 字符不要考虑检查preg_match('/[a-z]+/i', $name);
,以及参数化查询的组合[您正在使用这些,对],htmlspecialchars()
应该保护您免受一阶和二阶注入攻击。
您可以使用iconv()
将他们的名字音译/改写为 ASCII,但这是命中注定的,再加上屁股的痛苦,而且有些人可能会对此感到生气。
另一方面,如果您担心字段长度的空间效率,您应该知道VAR
inVARCHAR
表示“可变长度”,而VARCHAR(32)
包含“Ted”的字段将只占用4 个字节的存储空间。