Увод у ХТМЛ5 ограничење валидације
Интерактивне веб странице и апликације се не могу замислити без облика који нам омогућавају повежите се са нашим корисницима, и то добити податке Потребно нам је да обезбедимо глатке трансакције са њима. Треба нам важећи кориснички унос, међутим, морамо да га стекнемо на такав начин не фрустрира нашим корисницима превише.
Иако можемо побољшати употребљивост наших образаца паметно одабраним УКС дизајном, ХТМЛ5 такође има механизам за валидацију ограничења који нам омогућава ухватите грешке у уносу у самом фронту.
У овом посту ћемо се фокусирати валидација ограничења која се испоручује преко претраживача, и погледајте како програмери могу да раде обезбеди валидан унос корисника помоћу ХТМЛ5.
Зашто нам је потребна провјера улазних података
Инпут валидатион има два главна циља. Садржај који добијамо треба да буде:
1. Корисно
Морамо употребљиви подаци са којима можемо да радимо. Морамо да натерамо људе да уђу реалне податке у одговарајућем формату. На пример, нико ко је данас жив није рођен пре 200 година. Добијање података као што је овај може изгледати смешно у почетку, али дугорочно је досадно и попуњава нашу базу података бескорисним подацима.
2. Сецуре
Када говоримо о сигурности, то значи да морамо спречавање убризгавања злонамерног садржаја - било намјерно или случајно.
Може се постићи корисност (добијање разумних података) само на страни клијента, бацкенд тим не може превише помоћи у томе. Да достигне безбедности, предњи и позадински програмери морају да раде заједно.
Ако програмери фронтенда исправно потврде унос на страни клијента, бацкенд тим ће морати да се носи са много мање рањивости. Хаковање (сајт) често подразумева слање додатних података, или података у погрешном формату. Програмери се могу борити против сигурносних рупа попут ових, успјешно се боре са фронт-енд-а.
На пример, овај ПХП водич за безбедност препоручује да проверите све што можемо на страни клијента. Они наглашавају важност валидације фронтенд уноса тако што дају многе примјере, као што су:
"Провера ваљаности улаза ради најбоље са изузетно ограниченим вредностима, нпр. Када нешто мора да буде цели број, или алфанумерички низ или ХТТП УРЛ."
У валидацији улазних података, наш посао је да наметнути разумна ограничења на корисничком уносу. Функција валидације ограничења ХТМЛ5 пружа нам средства за то.
Валидација ХТМЛ5 ограничења
Пре ХТМЛ5, програмери су били ограничени на проверу корисничког уноса помоћу ЈаваСцрипт-а, што је био досадан и склон погрешкама. Да би се побољшала валидација образаца на страни клијента, ХТМЛ5 је увео а валидација ограничења алгоритам који ради у модерним претраживачима и проверава исправност достављеног уноса.
Да би се извршила процена, алгоритам користи атрибути који се односе на валидацију улазних елемената, као такав ,
, и
. Ако желите знати како се провјера ограничења догађа корак по корак у прегледнику, погледајте овај ВхатВГ документ.
Захваљујући ХТМЛ5 функцији валидације ограничења, можемо извршити све задаци стандардне валидације улаза на страни клијента без ЈаваСцрипт-а, искључиво са ХТМЛ5.
Да бисте извршили сложеније задатке везане за валидацију, ХТМЛ5 нам даје а ЈаваСцрипт АПИ за валидацију ограничења можемо користити за постављање наших прилагођених скрипти за провјеру ваљаности.
Потврдите са семантичким типовима уноса
ХТМЛ5 је уведен семантички типови уноса да - осим указивања на значење елемента за корисничке агенте - може се користити и за то потврдите кориснички унос ограничавањем корисника на одређени улазни формат.
Поред типова улаза који су већ постојали пре ХТМЛ5 (текст
, пассворд
, прихвати
, ресетовање
, радио
, поље за потврду
, дугме
, сакривен
), такође можемо користити следеће семантички ХТМЛ5 типови уноса: емаил
,тел
,урл
,број
,време
,датум
,Датум време
,датетиме-лоцал
, месец дана
,Недеља
, домет
, Претрага
,цолор
.
Можемо безбедно да користимо ХТМЛ5 типове улаза са старијим прегледачима, јер ће се понашати као у претраживачима који их не подржавају.
Да видимо шта се дешава када корисник унесе погрешан тип уноса. Рецимо да смо креирали поље за унос е-поште са следећим кодом:
Када корисник унесе стринг који не користи формат е-поште, алгоритам валидације ограничења не шаље образац, и враћа поруку о грешци:
Исто правило важи и за друге типове улаза, на пример за типе = "урл"
корисници могу да пошаљу само унос који прати УРЛ формат (почиње са протоколом, као што је хттп: //
или фтп: //
).
Неки типови улаза користе дизајн који чак не дозвољава корисницима да унесу погрешан формат улаза, на пример цолор
и домет
.
Ако користимо цолор
Тип улаза корисник је ограничен да бира боју из берача боја или остаје са подразумеваном црном бојом. Поље за унос је ограничен дизајном, стога не оставља много шансе за корисничку грешку.
Када је то прикладно, вреди размотрити коришћење ХТМЛ таг који функционише слично овим типовима уноса ограничених по дизајну; омогућава корисницима да изаберу из падајуће листе.
Користите ХТМЛ5-ове атрибуте за проверу ваљаности
Коришћење семантичких типова улазних података поставља одређена ограничења на оно што је корисницима дозвољено да пошаљу, али у многим случајевима желимо ићи мало даље. Ово је када атрибуте везане за валидацију од таг може да нам помогне.
Атрибути повезани са валидацијом припадају одређеним типовима улаза (не могу се користити на све врсте) на којима намећу додатна ограничења.
1. потребан
за добијање исправног уноса свим средствима
Тхе потребан
атрибут је најпознатији атрибут ХТМЛ валидације. То је боолеан аттрибуте што то значи не узима никакву вредност, једноставно морамо да га ставимо у означите ако желимо да га употребимо:
Ако корисник заборави да унесе вредност у тражено поље за унос, претраживач враћа поруку о грешци који их упозорава да попуне поље, и они не могу послати образац док не дају ваљани унос. Зато је увек важно марк визуално обавезна поља за кориснике.
Тхе потребан
атрибут може бити користе се заједно са следећим типовима улаза: текст
, Претрага
, урл
, тел
, емаил
, пассворд
, датум
, Датум време
, датетиме-лоцал
, месец дана
, Недеља
,време
, број
, поље за потврду
, радио
, филе
, плус са и
ХТМЛ тагови.
2. мин
, мак
и корак
за валидацију броја
Тхе мин
, мак
и корак
атрибути нам омогућавају ставити ограничења на поља за унос бројева. Могу се користити заједно са домет
, број
, датум
, месец дана
, Недеља
, Датум време
, датетиме-лоцал
, и време
типови уноса.
Тхе мин
и мак
атрибути пружају одличан начин за лако искључити неразумне податке. На пример, доле наведени пример приморава кориснике да поднесу старост између 18 и 120 година.
Када алгоритам валидације ограничења наиђе на унос корисника мањи од мин
, или већи од мак
вредност, спречава је да дође до позадине и враћа поруку о грешци.
Тхе корак
аттрибуте специфицира нумерички интервал између законских вриједности нумеричког поља за унос. На пример, ако желимо да корисници изаберу само из преступних година можемо додати степ = "4"
атрибут пољу. У доњем примеру сам користио број
тип улаза, јер нема типе = "иеар"
у ХТМЛ5.
Са унапред постављеним ограничењима, корисници могу да бирају само из преступних година између 1972. и 2016. године ако користе малу стрелицу горе која долази са број
инпут типе. Такође могу ручно да унесу вредност у поље за унос, али у случају да не испуњава ограничења, претраживач ће вратити поруку о грешци.
3. максимална дужина
за валидацију дужине текста
Тхе максимална дужина
атрибут омогућава поставите максималну дужину знака за текстуална поља за унос. Може се користити заједно са текст
, Претрага
, урл
, тел
, емаил
и пассворд
типове улаза и са ХТМЛ таг.
Тхе максимална дужина
атрибут може бити одлично решење за поља телефонског броја која не могу имати више од одређеног броја знакова, или за контактне форме у којима не желимо да корисници пишу више од одређене дужине.
Исјечак кода испод показује примјер за ово друго, ограничава корисничке поруке на 500 знакова.
Тхе максимална дужина
аттрибуте не враћа поруку о грешци, али претраживач једноставно не дозвољава корисницима да уносе више од наведеног броја знакова. Зато је то кључно информисати кориснике о ограничењу, иначе неће разумети зашто не могу наставити с типкањем.
4. паттерн
за Регек валидацију
Тхе паттерн
атрибут нам дозвољава користите регуларне изразе у нашем процесу валидације улаза. Регуларни израз је а унапред дефинисан скуп знакова који формирају одређени образац. Можемо га користити или за претрагу низова који прате образац, или за наметање одређеног формата дефинисаног обрасцем.
Са паттерн
атрибут можемо урадити на другом - ограничити кориснике да предају свој унос у формату који одговара датом регуларном изразу.
Тхе паттерн
атрибут има много случајева употребе, али може бити посебно користан када то желимо потврдите поље за лозинку.
Пример испод захтева од корисника да унесу лозинку која је дугачка најмање 8 знакова и садржи најмање једно слово и један број (извор регекса који сам користио).
Још неколико ствари
У овом чланку смо погледали како се користи провјеру образаца испоручених са прегледачем обезбеђен оригиналним ХТМЛ5 алгоритмом валидације ограничења. За креирање наших прилагођених скрипти за проверу ваљаности, потребно је да користимо АПИ ограничења за валидацију који може бити следећи корак у усавршавању вештина валидације образаца.
ХТМЛ5 обрасци су доступни помоћним технологијама, тако да не морамо нужно користити ариа-рекуиред
АРИА атрибут за означавање потребних поља за унос за читаче екрана. Ипак, може бити корисно додати подршку за приступачност старијим прегледачима. Такође је могуће искључите се из валидације ограничења додавањем новалидате
боолеан атрибут за елемент.