HTML5 Kısıtlama Doğrulamasına Giriş
Etkileşimli web siteleri ve uygulamalar, bize olanak sağlayan formlar olmadan hayal edilemez. kullanıcılarımızla bağlantı kurun, ve için veriyi almak Onlarla sorunsuz işlem yapabilmek için ihtiyacımız var. İhtiyacımız var geçerli kullanıcı girişi, ancak bunu bir şekilde edinmemiz gerekir sinir bozmaz kullanıcılarımız çok fazla.
Akıllıca seçilen UX tasarım desenleriyle formlarımızın kullanılabilirliğini artırabilirken, HTML5 ayrıca kısıtlama doğrulaması için bize izin veren yerel bir mekanizmaya sahiptir Giriş hatalarını doğrudan ön uçta yakalayın.
Bu yayında odaklanacağız tarayıcı tarafından sağlanan kısıtlama onayı, ve öncül geliştiricilerin nasıl yapabildiklerini araştırın HTML5 kullanarak güvenli geçerli kullanıcı girişi.
Neden Ön Uç Giriş Doğrulamasına İhtiyacımız Var
Giriş doğrulama iki ana hedefi var. Aldığımız içeriğin olması gerekiyor:
1. Faydalı
İhtiyacımız var çalışabileceğimiz kullanılabilir veri. İnsanların girmesini sağlamalıyız. doğru formatta gerçekçi veriler. Mesela, bugün yaşayan hiç kimse 200 yıl önce doğmadı. Bu gibi verileri almak ilk başta komik görünebilir, ancak uzun vadede can sıkıcı bir durumdur ve veritabanımızı gereksiz verilerle doldurur.
2. Güvenli
Güvenlikten bahsederken, bunun anlamı bizim Kötü niyetli içeriğin enjeksiyonunu engelle - kasıtlı veya kazayla.
Yararlılık (makul verilerin elde edilmesi) elde edilebilir sadece müşteri tarafında, arka uç ekibi bu konuda çok fazla yardımcı olamaz. Ulaşmak için güvenlik, ön ve arka uç geliştiricilerin birlikte çalışması gerekir.
Frontend geliştiricileri, istemci tarafındaki girdileri doğru bir şekilde doğrularsa, arka uç ekibinin daha az kırılganlıkla başa çıkması gerekecek. Hacking (bir site) genellikle Ekstra veri gönderme, veya yanlış formattaki veriler. Geliştiriciler bunun gibi güvenlik açıklarıyla savaşabilir, ön uçtan başarılı bir şekilde savaşabilir.
Örneğin, bu PHP güvenlik rehberi, müşteri tarafında yapabileceğimiz her şeyi kontrol etmenizi önerir. Aşağıdaki gibi pek çok örnek vererek ön uç giriş onaylamasının önemini vurgulamaktadırlar:
"Giriş doğrulama, örneğin bir şeyin bir tam sayı veya alfasayısal bir dize veya bir HTTP URL olması gerektiğinde, son derece sınırlı değerlerle en iyi şekilde çalışır."
Ön giriş giriş doğrulamasında işimiz makul kısıtlamalar getirmek kullanıcı girişi üzerinde. HTML5'in kısıtlama doğrulama özelliği bize bunun için araçlar sağlar.
HTML5 Kısıtlama Doğrulaması
HTML5'ten önce, ön uç geliştiriciler JavaScript ile kullanıcı girişini doğrulama, Bu sıkıcı ve hataya açık bir süreçti. Müşteri tarafı form doğrulamasını iyileştirmek için, HTML5 bir kısıt doğrulama modern tarayıcılarda çalışan algoritma ve sunulan girdinin geçerliliğini kontrol eder.
Değerlendirme yapmak için, algoritma girdi öğelerinin geçerliliği ile ilgili öznitelikler, gibi ,
, ve
. Kısıtlama doğrulamasının nasıl yapıldığını öğrenmek için tarayıcıda adım adım bu WhatWG dokümanını inceleyin..
HTML5'in kısıtlama doğrulama özelliği sayesinde hepsini uygulayabiliriz standart giriş doğrulama görevleri müşteri tarafında JavaScript olmadan, sadece HTML5 ile.
Doğrulama ile ilgili daha karmaşık görevler gerçekleştirmek için HTML5 bize Sınırlama Doğrulama JavaScript API özel doğrulama komut dosyalarımızı ayarlamak için kullanabiliriz.
Anlamsal Giriş Türleriyle Doğrulayın
HTML5 tanıttı anlamsal giriş tipleri Bu - kullanıcı aracıları için öğenin anlamını belirtmenin yanı sıra - kullanıcı girişini doğrula kullanıcıları belirli bir giriş biçimiyle sınırlandırarak.
HTML5'ten önce var olan giriş türlerinin yanı sıra (Metin
, parola
, Gönder
, sıfırlamak
, radyo
, onay kutusu
, buton
, gizli
) aşağıdakileri de kullanabiliriz anlamsal HTML5 giriş tipleri: E-posta
,tel
,url
,numara
,zaman
,tarih
,datetime
,datetime-yerel
, ay
,hafta
, menzil
, arama
,renk
.
HTML5 giriş türlerini eski tarayıcılarda güvenle kullanabiliyoruz; onları desteklemeyen tarayıcılardaki alan.
Kullanıcı yanlış giriş türüne girdiğinde ne olacağını görelim. Diyelim ki aşağıdaki kodla bir e-posta giriş alanı oluşturduk:
Kullanıcı bir e-posta formatı kullanmayan bir dize yazdığında, sınırlama doğrulama algoritması formu göndermiyor, ve hata mesajı döndürür:
Aynı kural, örneğin başka giriş tipleri için de geçerlidir. = "Url" yazarak
Kullanıcılar yalnızca URL biçimini izleyen bir girdi gönderebilir (örneğin, http: //
veya ftp: //
).
Bazı girdi türleri, kullanıcıların yanlış bir giriş formatı girmesine bile izin vermiyor, Örneğin renk
ve menzil
.
Kullanırsak renk
giriş türü, kullanıcının renk seçiciden bir renk seçmesi veya varsayılan siyahla kalması ile sınırlıdır. Giriş alanı tasarım tarafından kısıtlanmış, bu nedenle kullanıcı hatası için fazla şans bırakmaz.
Uygun olduğunda, kullanmayı düşünmeye değer Tasarım gereği bu kısıtlı giriş türlerine benzer şekilde çalışan HTML etiketi; kullanıcıların açılır listeden seçim yapmasını sağlar.
HTML5'in Doğrulama Özelliklerini kullanın
Anlamsal giriş türlerini kullanmak, kullanıcıların göndermelerine izin verilen bazı kısıtlamaları belirler, ancak çoğu durumda biraz daha ileri gitmek istiyoruz. Bu ne zaman doğrulama ile ilgili özellikler arasında etiketi bize yardımcı olabilir.
Doğrulama ile ilgili özellikler belirli giriş türlerine aittir (üzerinde kullanılamazlar) herşey türleri) başka kısıtlamalar getirdikleri.
1. gereklidir
elbette geçerli bir giriş elde etmek için
gereklidir
öznitelik, en bilinen HTML doğrulama özniteliğidir. Bu bir boolean niteliği bu demektir ki herhangi bir değer almaz, sadece içine koymak zorundayız eğer kullanmak istiyorsak etiket:
Kullanıcı gerekli bir giriş alanına bir değer girmeyi unutursa, tarayıcı hata mesajı döndürür Bu, onları alanlara doldurmaları konusunda uyarır ve formu gönderemiyorum geçerli bir giriş sunana kadar. Bu yüzden her zaman önemli görsel olarak işaretle kullanıcılara zorunlu alanlar.
gereklidir
özellik olabilir aşağıdaki giriş türleriyle birlikte kullanılır: Metin
, arama
, url
, tel
, E-posta
, parola
, tarih
, datetime
, datetime-yerel
, ay
, hafta
,zaman
, numara
, onay kutusu
, radyo
, dosya
, artı ve
HTML etiketleri.
2. min
, maksimum
ve adım
numara doğrulama için
min
, maksimum
ve adım
özellikleri bize sağlar sayı giriş alanlarına kısıtlamalar koymak. İle birlikte kullanılabilirler menzil
, numara
, tarih
, ay
, hafta
, datetime
, datetime-yerel
, ve zaman
giriş tipleri.
min
ve maksimum
özellikleri kolayca elde etmek için harika bir yol sağlar mantıksız verileri hariç tut. Örneğin, aşağıdaki örnek, kullanıcıları 18 ile 120 arasında bir yaş göndermeye zorlar.
Kısıtlama doğrulama algoritması, kullanıcıdan daha küçük bir kullanıcı girdisine girdiğinde min
, veya daha büyük maksimum
değer, arka uca ulaşmasını önler ve bir hata mesajı döndürür..
adım
nitelik sayısal bir aralık belirtir Sayısal giriş alanının yasal değerleri arasında. Örneğin, kullanıcıların yalnızca artık yıllar arasından seçim yapmasını istiyorsak, adım = "4"
alanın niteliği. Aşağıdaki örnekte kullandım numara
giriş türü, çünkü yok type = "yıl"
HTML5'te.
Önceden belirlenmiş kısıtlamalarla, kullanıcılar yalnızca birlikte gelen küçük yukarı okları kullanıyorlarsa, 1972 ve 2016 arasındaki artık yıllar arasından seçim yapabilirler. numara
giriş tipi. Giriş alanına manuel olarak bir değer de yazabilirler, ancak kısıtlamaları karşılamaması durumunda, tarayıcı bir hata mesajı verecektir..
3. maksimum uzunluk
metin uzunluğu doğrulaması için
maksimum uzunluk
öznitelik mümkün kılar maksimum karakter uzunluğu ayarlamak metinsel giriş alanları için. Birlikte kullanılabilir Metin
, arama
, url
, tel
, E-posta
ve parola
giriş tipleri ve HTML etiketi.
maksimum uzunluk
öznitelik, belirli sayıda karakterden fazlasını kullanamayan telefon numarası alanları veya kullanıcıların belirli bir uzunluktan daha fazla yazmalarını istemediğimiz iletişim formları için mükemmel bir çözüm olabilir..
Aşağıdaki kod parçacığı ikincisi için bir örnek gösterir, kullanıcı mesajlarını 500 karakterle sınırlar..
maksimum uzunluk
nitelik hata mesajı döndürmüyor, ancak tarayıcı kullanıcıların belirtilen karakter numaralarından daha fazlasını yazmasına izin vermez. Bu yüzden çok önemlidir kullanıcıları kısıtlama hakkında bilgilendirin, yoksa neden yazmaya devam edemediklerini anlamıyorlar.
4. Desen
Regex doğrulama için
Desen
özellik bize izin verir Normal İfadeler kullanın Giriş doğrulama sürecimizde. Düzenli bir ifade bir önceden tanımlanmış karakter kümesi Bu kesin bir kalıp oluşturur. Deseni izleyen dizeleri aramak veya desen tarafından tanımlanan belirli bir formatı uygulamak için kullanabiliriz..
İle Desen
özellik ikincisini yapabiliriz - kullanıcıları girdilerini bir biçimde gönderme konusunda kısıtlayın verilen normal ifadeyle eşleşir.
Desen
özniteliğin birçok kullanım durumu vardır, ancak istediğimizde özellikle yararlı olabilir bir şifre alanını doğrula.
Aşağıdaki örnek, kullanıcıların en az 8 karakter uzunluğunda ve en az bir harf ve bir sayı içeren bir şifre girmelerini gerektirir (kullandığım regex'in kaynağı).
Bir kaç şey daha
Bu makalede, bu yazının nasıl kullanılacağına bir göz attık. tarayıcı tarafından sağlanan form doğrulama HTML5'in yerel kısıtlama doğrulama algoritması tarafından sağlanır. Özel doğrulama komut dosyalarımızı oluşturmak için form doğrulama becerilerini geliştirmek için bir sonraki adım olan Sınırlama Doğrulama API'sini kullanmamız gerekir..
HTML5 formlarına yardımcı teknolojilerden erişilebilir, bu nedenle kullanmak zorunda değiliz. arya-Gerekli
Ekran okuyucular için gerekli giriş alanlarını işaretlemek için ARIA özelliği. Bununla birlikte, eski tarayıcılar için erişilebilirlik desteği eklemek yararlı olabilir. Mümkün kısıtlama doğrulamasından vazgeçmek ekleyerek novalidate
boolean niteliği eleman.