В настоящее время я форма создана с помощью Laravel с text
формы ввода, созданной с MAXLENGTH 30:Текст ввод MAXLENGTH «30» подачи ввод «31»
{{ Form::text('employer' , Input::old('employer'), array('class'=>'form-control', 'maxlength'=>'30')) }}
У меня также есть столбец в MySQL задан с длиной 30.
Я только что получил сообщение об ошибке, что в представлении было введено это поле длиной 31 символа, и я не знаю, как это произойдет.
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'employer' at row 1 (SQL:update...)
Я полагаю, что что-то рассчитывает в массиве нумерации с 0 является первым, и 29 будучи тридцатые, но я проверил в нескольких различных браузерах и MaxLength 30 всегда выходит, как 30.
Возможно ли, что тег maxlength
просматривается по-разному между браузерами?
Предполагаю, что я могу войти и установить максимальную длину в моих вводах на 1 ниже длины, указанной в MySQL, но это кажется немного бесполезным при использовании разных значений через приложение.
Возможно ли, что пользователь просто удалил атрибут maxlength на стороне клиента, а затем просто отправил строку по своему выбору? –
Возможно, они обошли атрибут, например, @MartinBean, рядом с проверкой на лицевой стороне вы можете добавить подтверждение в свой контроллер (или где бы вы его не обрабатывали). Посмотрите на валидацию на веб-сайте laravel (так как вы не упомянули версию, которую я не свяжу ни с кем), она добавит дополнительный серверный уровень, который также может вернуть ошибки/обратную связь. –
Ввод текста, похоже, не является чем-то необычным: 'Georgia Piedmont Technical Coll' Так что он уже усечен, но является просто дополнительным символом надстрочной ... – cchapman