2013-10-15 1 views
0

У меня был общий вопрос не только о моем коде. Я добавлял валидацию к моему регистрационному коду для моего сайта (проверка длины и удаление незаконных символов). Но мне было интересно, попрошу ли я сначала назвать имя &. Должен ли я проверять длину символов в полях имени?Должен ли я проверять длину имени на странице регистрации?

И если да, то что было бы хорошим мин и максимальной длиной для имен. Я думал о 3-20 символах. Но я действительно не хочу ограничивать имена, если у кого-то действительно есть имя длиннее 20 символов. Любая обратная связь будет большое спасибо :)

+0

Почему вы хотите ограничить длину поля имени? –

+0

И у некоторых людей есть имена двух символов, таких как 'Jo'. – bwoebi

+0

Не говоря уже о «Бо», как в «Дереке» ;-) –

ответ

0

я нахожу VARCHAR(32) для имени и последних реальных полех имен будет достаточно, и единственным, что я предложил бы делать для них является пробегает htmlspecialchars() перед установкой, потому что некоторые люди законно имеют «странные» акцентированные или не-ascii символы в их именах, которые большинство людей не учитывают с такими чеками, как preg_match('/[a-z]+/i', $name);, а комбинация параметризованных запросов [вы используете их, справа] и htmlspecialchars() должна защищать вас от первого и атаки второго порядка.

Вы можете использовать iconv(), чтобы транслитерировать/калечить свои имена в ASCII, но это хит и промах, плюс боль в заднице, а также некоторые люди могут обижаться на это.

С другой стороны, если вы беспокоитесь о пространстве-эффективности с вашей длиной поля вы должны знать, что «переменная длина» The VAR в VARCHAR означает и VARCHAR(32) поле, содержащее «Ted» только займут 4 bytes of storage.