geÇerlİlİk kontrollerİ valİdatİon...

23
GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLS Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Upload: others

Post on 21-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

GEÇERLİLİK KONTROLLERİ

VALİDATİON CONTROLS

Öğr. Gör. Emine TUNÇEL

Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Page 2: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Giriş

• Kullanıcı bilgilerinin istenilen kriterlere uygun olup olmadığını

denetlemek amacıyla kullanılan kontrollerdir

• Örneğin kullanıcının bir alanı boş bırakmasını engellemek,

girilecek şifre için karakter sayısını belirlemek gibi..

• ASP.NET de 5 adet geçerlilik kontrolü

mevcuttur:

1) RangeValidator

2) RequiredFieldValidator

3) CompareValidator

4) RequiredExpressionValidator

5) CustomValidator

• ValidationSummary ise bir geçerlilik denetim

kontrolü değil, bu kontrollerden gelen

mesajların verildiği yerdir.

Page 3: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Kullanıcının belirtilen aralıklarda değer girmesini sağlar.

1. RangeValidator Kontrolü

• ControlToValidate : Hangi kontrole girilen değerlerin denetleneceğini

belirten özelliktir.

• ErrorMessage: Belirtilen aralıklarda değer girilmediğinde gösterilecek hata

mesajını belirtir.

• MaximumValue : ControlToValidate özelliği ile belirtilen kontrole

girilebilecek en yüksek değerin belirtildiği özelliktir

• MinimumValue : ControlToValidate özelliği ile belirtilen kontrole

girilebilecek en küçük değerin belirtildiği özelliktir

• Type: ControlToValidate özelliği ile belirtilen kontrole hangi tür verilen

girilebileceğini belirtir.

Page 4: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Kullanıcının belirtilen aralıklarda değer girmesini sağlar.

1. RangeValidator Kontrolü

• ControlToValidate : Hangi kontrole girilen değerlerin denetleneceğini

belirten özelliktir.

• ErrorMessage: Belirtilen aralıklarda değer girilmediğinde gösterilecek hata

mesajını belirtir.

• MaximumValue : ControlToValidate özelliği ile belirtilen kontrole girilecek

değer aralığının üst sınırını belirtir.

• MinimumValue : ControlToValidate özelliği ile belirtilen kontrole girilecek

değer aralığının alt sınırını belirtir.

• Type: ControlToValidate özelliği ile belirtilen kontrole hangi tür verilen

girilebileceğini belirtir.

Page 5: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Denetleme işlemi 2 farklı şekilde yapılabilir:

– Client taraflı javascript ile yapılan kontrol. Bu yöntemde bizim sayfaya herhangi bir Javascript kodu eklememize gerek yoktur. Geçerlilik kontrollerinden biri sayfaya eklendiğinde ASP.NET otomatik olarak bu javascript kodlarını ekler. Böylece sayfa sunucuya gitmeden geçerlilik denetimi yapılır. Eğer geçerli değilse sayfa sunucuya post edilmez.

– Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir denetimi sunucu yapar. Özellikle browser’lardaki güvenlik amaçlı JavaScript kullanımının iptal edildiği durumlarda kullanışlıdır. Bunun için geçerlilik kontrolü bildirimimize EnableClientScript="False" gibi bir ifade eklemeliyiz. Sunucu

taraflı denetimde sayfanın geçerliliğini if(Page.IsValid) ifadesiyle kontrol edebiliriz. Eğer sayfa geçerli değilse yani tanımladığımız kıstaslar içinde değerler girilmediyse istenilen işlemler yapılmaz.

1. RangeValidator Kontrolü

Page 6: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Değer girilmesi zorunlu olan alanları kontrol eden denetim

kontrolüdür.

2. RequiredFieldValidator Kontrolü

• ControlToValidate : kontrol edilecek olan alanın (web kontrolünün) id si

burada belirtilir.

• ErrorMessage: Giriş yapılmamışsa hata mesajının yazılacağı alandır

Page 7: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• RequiredFieldValidator yalnızca boş alan olup olmadığını

kontrol etmez. Aynı zamanda önceden tanımlanan değerler

içinde geçerlilik denetimi yapar.

• Özellikle liste web kontrollerinin kullanımında bu özellikten

faydalanılır.

• Bunun için InitialValue bildirimi yapmalıyız

• Örneğin açılır listeden bir seçim yapılmadığında hata

oluşmasını sağlayalım.

2. RequiredFieldValidator Kontrolü

Page 8: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Öncelikle kontrol edilecek elemanı yani DropDownList

kontrolünü sayfaya ekleyip aşağıdaki gibi düzenleyelim

2. RequiredFieldValidator Kontrolü

• Daha sonra RequiredFieldValidator geçerlilik kontrolünü ekleyelim:

• Burada InitialValue="bos" bildirimi ile kontrol edilen alandan

geri dönecek olan değerin "bos" olması durumunda geçersiz

girdi olduğu belirtilir

• :

Page 9: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• CompareValidator, temel olarak değerleri karşılaştıran bir kontroldür.

• 3 tip geçerlilik denetimi yapar.

• Bunlardan ilki girilen değer tipinin tanımlanan değer tipine eşit olup olmadığının kontrolünü yapar. Örneğin bir metin alanına tarih tipli bir değer girilmesi gerekiyorsa CompareValidator kontrolünün tipini Date olarak atayarak tarih formatındaki girdileri geçerli kılabiliriz.

• Diğer bir kullanım şekli sabit bir değer tanımlayarak girdinin bununla karşılaştırılmasıdır. Örneğin bir açık arttırma sitesinde girilen en son değeri sabit kabul ederek bundan yüksek değerin geçerli kabul edilmesi gibi.

• Son olarak form elemanlarının birbirine göre karşılaştırılmasının yapılmasıdır. Örneğin şifre tekrar şifre alanlarının aynı olması gibi.

3. CompareValidator Kontrolü

Page 10: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• CompareValidator ile tip kontrolü

3. CompareValidator Kontrolü

• Örneğimizde denetimin Operator="DataTypeCheck" ile veri

tipi şeklinde yapılacağını, bu tipin de Type="Date" ile

tarih olacağını belirtiyoruz

• Diğer bir ifadeyle metin kutusuna girilen değerin tarih

formatında olup olmadığını kontrol ediyoruz

Page 11: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• CompareValidator ile sabit değer kontrolü

3. CompareValidator Kontrolü

• Bu örneğimizde de metin kutusuna girilebilecek değerlerin 100 ve daha

küçük olmasını sağladık.

• Burda farklı olarak ValueToCompare metodu ile kıyaslama yapılacak

değeri bildirim kısmında belirttik

Page 12: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• CompareValidator ile form elemanlarını kıyaslama

3. CompareValidator Kontrolü

• Diğer örneklerimizden farklı olarak bur da kullanıcının değer girdiği iki

kutucuk var. İnteger olarak tutulan bu değerlerin eşit olmasını istiyoruz.

Bunun için

ControlToCompare="TextBox1"

ControlToValidate="TextBox2"

• bildirimini kullandık

Page 13: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• RegularExpression’lar String’ler için format tanımlamaya

yarayan özel ifadelerdir.

• Örneğin bir e-posta formatını özel ifadelerle belirleyip girişin o

formatta olup olmadığını bu sayede kontrol edebiliriz.

4. RegularExpressionValidator Kontrolü

• Örneğimizde RegularExpression tanımı ValidationExpression özelliği ile belirtildi.

• RegularExpression ile ilgili daha fazla bilgiyi http://regexlib.com/default.aspx

adresinden alabilirsiniz. Bu adreste değişik kalıplar için Regular Expression

tanımları bulabilirsiniz.

Page 14: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Sunucu kontrolleri üzerinde denetim yapmak için bizim

tarafımızdan tanımlanmış, kurallarını bizim belirlediğimiz

bir denetim kontrolüdür

• Örneğin bir kullanıcıdan alınacak şifrenin en az 8

karakter olması ve içinde en az bir rakamın bulunması

şeklinde bir kural tanımlanıp, girilen değerlerin uygun

olup olmadığı denetlenebilir.

• CustomValidator, ClientSide ve ServerSide olmak üzere

2 farklı şekilde yapılabilir.

5. CustomValidator Kontrolü

Page 15: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Server Side

5. CustomValidator Kontrolü

• onservervalidate olayında çalışacak denetim adlı metod :

• Bu metod ServerValidateEventArgs isminde özel bir argüman döndürür.

Tanımladığımız koşulun gerçekleşmesi durumunda bu argümanın

IsValid özelliğine true değeri atanır. Aksi takdirde false değeri ile denetim

sağlanmamış olur ve ErrorMessage ile belirtilen mesaj ekrana yazılır

Page 16: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Server Side

5. CustomValidator Kontrolü

• onservervalidate olayında çalışacak parola_denetim adlı metot :

Page 17: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Server Side

5. CustomValidator Kontrolü

Page 18: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Örnek

5. CustomValidator Kontrolü

Page 19: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Örnek

5. CustomValidator Kontrolü

Page 20: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Custom Validator – Örnek

• Sayfamızın işleyişi şu şekilde:

• Sayfa ilk yüklendiğinde karşımıza bir soru çıkacak ve metin

kutusuna 10 sn içinde bir cevap girilmesi beklenecek. Bu süre

içinde cevap girilmemişse metin girişi geçersiz kabul edilecek

• Bunu sağlamak için Session değişkenlerinden faydalanıyoruz.

Session’a şimdiki zamanı atayıp daha sonra Butona

tıklandığında 10 sn eklenmiş session zamanımız ile

karşılaştırıyoruz. Duruma göre IsValid’e true veya false değeri

veriyoruz. Diğer bir ifadeyle geçerli veya geçersiz kılıyoruz

• Bu metodu da CustomValidator’de

onservervalidate="sure_denetimi" bağlıyoruz.

5. CustomValidator Kontrolü

Page 21: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik Kontrolleri

• Bu kontrol aslında bir geçerlilik denetimi yapmaz.

• Diğer geçerlilik kontrollerinin bir özetini gösterir.

• Pek çok alandan oluşan uzun bir formunuz olduğunu

düşünün.

• Kullanıcı formun sonuna ya da başına geldiğinde o

zamana kadar eksik ya da geçersiz girdi hata mesajlarını

tek tek form elemanlarının yanında aramak yerine

hepsini derli toplu bir yerde görmesi oldukça kullanışlı bir

özelliktir.

• İşte ValidationSummary bunu sağlıyor

ValidationSummary

Page 22: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

Geçerlilik KontrolleriValidationSummary

Page 23: GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLSpersonel.klu.edu.tr/dosyalar/kullanicilar/emine... · –Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir

• KAYNAK

• C# ile ASP.NET

• Zafer Demirkol