form ve val İdation (do ğrulama) kontrolleri Örne Ğİ · 1 form ve val İdation (do ğrulama)...

44
1 FORM VE VALİDATION (Doğrulama) KONTROLLERI ÖRNEĞİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default7.aspx.cs" Inherits="Default7" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Ad Soyad<asp:TextBox ID="txtAdSoyad" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtAdSoyad" ErrorMessage="Ad Soyad Doldurulmamıştır." ValidationGroup="ButonlaCalisacak"></asp:RequiredFieldValidator><br /> <br /> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Bilgileri Kaydet" ValidationGroup="ButonlaCalisacak" /> </div> </form> </body> </html> using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

Upload: others

Post on 20-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

1

FORM VE VAL İDATION (Doğrulama) KONTROLLERI ÖRNEĞİ

İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

<%@ Page Language ="C#" AutoEventWireup ="true" CodeFile ="Default7.aspx.cs" Inherits ="Default7" %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona l.dtd"> <html xmlns ="http://www.w3.org/1999/xhtml"> <head runat ="server"> <title >Untitled Page </ title > </ head > <body > <form id ="form1" runat ="server"> <div > Ad Soyad <asp : TextBox ID ="txtAdSoyad" runat ="server"></ asp : TextBox ><asp : RequiredFieldValidator ID ="RequiredFieldValidator1" runat ="server" ControlToValidate ="txtAdSoyad" ErrorMessage ="Ad Soyad Doldurulmamı ştır." ValidationGroup ="ButonlaCalisacak"></ asp : RequiredFieldValidator ><br /> <br /> <br /> <asp : Button ID ="Button1" runat ="server" onclick ="Button1_Click" Text ="Bilgileri Kaydet" ValidationGroup ="ButonlaCalisacak" /> </ div > </ form > </ body > </ html >

using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

Page 2: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

2

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class Default7 : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { } protected void Button1_Click( object sender, EventArgs e) { Response.Write( "Kaydet İşlemi Çalı şmıştır" ); } }

ÜYELİK KAYIT FORMU UYGULAMASI

Page 3: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

3

<%@ Page Language ="C#" AutoEventWireup ="true" CodeFile ="Default6.aspx.cs" Inherits ="Default6" %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona l.dtd"> <html xmlns ="http://www.w3.org/1999/xhtml"> <head runat ="server"> <title >Untitled Page </ title > </ head > <body > <form id ="form1" runat ="server"> <div > <br /> <table id ="Tablo" style =" width : 700px ; padding : 3px ; background-color : #FFFFee ; border-style : solid ; border-color : #999999 ; border-width : 1px ; border-top-style : none ; " > <tr > <td > <div class ="Icerik"> 1- Üyelik Tipi </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : UpdatePanel ID ="UpdatePanel1" runat ="server">

Page 4: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

4

<ContentTemplate > <asp : RadioButtonList ID ="RadioButtonList1" runat ="server" CssClass ="Icerik" AutoPostBack ="true" RepeatDirection ="Horizontal"> <asp : ListItem Text ="Firma Üyeli ği" Value ="0" Selected ="True" ></ asp : ListItem > <asp : ListItem Text ="Akademik Üyelik" Value ="1" Enabled ="false" ></ asp : ListItem > </ asp : RadioButtonList > </ ContentTemplate > <Triggers > <asp : AsyncPostBackTrigger ControlID ="TabContainer1" EventName ="ActiveTabChanged" /> </ Triggers > </ asp : UpdatePanel > </ td > </ tr > <tr > <td > <div class ="Icerik"> 3- Ad Soyad </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxAdSoyad" runat ="server" Width ="250px" class ="MetinKutusu"></ asp : TextBox > <span style =" color : #ff0000"> * </ span > <br /> <asp : requiredfieldvalidator id ="RFVAdSoyad" runat ="server" ErrorMessage ="Belgenin Verili ş Tarihini Girebilirsiniz" Display ="Dynamic" ControlToValidate ="TextBoxAdSoyad" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 4- E-mail </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td >

Page 5: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

5

<td > <asp : TextBox ID ="TextBoxEmail" runat ="server" Width ="200px" MaxLength ="250" class ="MetinKutusu"></ asp : TextBox > <span style =" color : #ff0000"> * </ span > <br /> <asp : requiredfieldvalidator id ="RFVEMail" runat ="server" ErrorMessage ="E-mail adresini girmelisiniz" Display ="Dynamic" ControlToValidate ="TextBoxEmail" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > <asp : regularexpressionvalidator id ="RegularExpressionValidator1" runat ="server" ErrorMessage ="Geçersiz mail" Display ="Dynamic" ControlToValidate ="TextBoxEmail" ValidationExpression ="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak"></ asp : regularexpressionvalidator> </ td > </ tr > <tr > <td > <div class ="Icerik"> 5- Cep Telefonu </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxCepKodu" runat ="server" Width ="30px" class ="MetinKutusu" MaxLength ="3"></ asp : TextBox > <asp : TextBox ID ="TextBoxCepNumarasi" runat ="server" Width ="70px" class ="MetinKutusu" MaxLength ="7"></ asp : TextBox > <asp : CompareValidator id ="CepKoduSayisalKontrolu" runat ="server" ControlToValidate ="TextBoxCepKodu" ErrorMessage ="Sayısal de ğer girmelisiniz." Operator ="DataTypeCheck" Type ="Double" /> <asp : CompareValidator id ="CepNumarasiSayisalKontrolu" runat ="server" ControlToValidate ="TextBoxCepNumarasi"

Page 6: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

6

ErrorMessage ="Sayısal de ğer girmelisiniz." Operator ="DataTypeCheck" Type ="Double" /> </ td > </ tr > <tr > <td > <asp : UpdatePanel ID ="UpdatePanel2" runat ="server"> <ContentTemplate > <asp : Label ID ="LabelKurum" runat ="server" Text ="Label" CssClass ="Icerik" >6- Firmanızın Adı: </ asp : Label > </ ContentTemplate > <Triggers > <asp : AsyncPostBackTrigger ControlID ="TabContainer1" EventName ="ActiveTabChanged" /> </ Triggers > </ asp : UpdatePanel > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxFirmaAdi" runat ="server" Width ="350px" class ="MetinKutusu"></ asp : TextBox > <span style =" color : #ff0000"> * </ span > <asp : requiredfieldvalidator id ="RFVFirmaAdi" runat ="server" ErrorMessage ="Firmanızın Adını Giriniz" Display ="Dynamic" ControlToValidate ="TextBoxFirmaAdi" Font-Names="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 7- Bulundu ğu Ülke/ Şehir </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td >

Page 7: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

7

<td > <asp : UpdatePanel ID ="UpdatePanel3" runat ="server" > <ContentTemplate > <asp : DropDownList ID ="DropDownListUlke" runat ="server" width ="120px" onselectedindexchanged ="DropDownListUlke_SelectedIndexChanged" AutoPostBack ="True"> </ asp : DropDownList > / <asp : DropDownList ID ="DropDownListSehir" runat ="server" width ="120px" > </ asp : DropDownList > <span style =" color : #ff0000"> * </ span > </ ContentTemplate > <Triggers > <asp : AsyncPostBackTrigger ControlID ="DropDownListUlke" EventName ="SelectedIndexChanged" /> </ Triggers > </ asp : UpdatePanel > <asp : requiredfieldvalidator id ="RFVUlke" runat ="server" ErrorMessage ="Lütfen bulundu ğunuz Şehri seçiniz." Display ="Dynamic" ControlToValidate ="DropDownListSehir" Font-Names="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak"></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 8- Kullanıcı Adı </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxKullaniciAdi" runat ="server" Width ="100px" class ="MetinKutusu" MaxLength ="50"></ asp : TextBox > <span style =" color : #ff0000"> * </ span > <br /> <asp : requiredfieldvalidator id ="RFVKullaniciAdi" runat ="server" ErrorMessage ="Kullanıcı Adınızı Giriniz" Display ="Dynamic" ControlToValidate ="TextBoxKullaniciAdi" Font-Names ="Arial" Font-Size ="Small"

Page 8: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

8

ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 9- Şifre </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxSifre" runat ="server" Width ="100px" class ="MetinKutusu" MaxLength ="50" TextMode ="Password"></ asp : TextBox > <span style =" color : #ff0000"> * <img src ="Images/anah.gif" /> <br /> <asp : requiredfieldvalidator id ="RFVSifre" runat ="server" ErrorMessage =" Şifrenizi Giriniz" Display ="Dynamic" ControlToValidate ="TextBoxSifre" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 10- Şifre Tekrarı </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : TextBox ID ="TextBoxSifreTekrari" runat ="server" Width ="100px" class ="MetinKutusu" MaxLength ="50" TextMode ="Password"></ asp : TextBox > <span style =" color : #ff0000"> * <img src ="Images/anah.gif" />

Page 9: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

9

<br /> <asp : requiredfieldvalidator id ="RFVSifreTekrari" runat ="server" ErrorMessage =" Şifrenizi Giriniz" Display ="Dynamic" ControlToValidate ="TextBoxSifreTekrari" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > <div class ="Icerik"> 11- Güvenlik Numarası </ div > </ td > <td > <div class ="Icerik" style =" width : 10px ; " >: </ div > </ td > <td > <asp : UpdatePanel ID ="UpdatePanel4" runat ="server"> <ContentTemplate > <asp : Image ID ="ImageGuvenlikResmi" runat ="server" style =" vertical-align : bottom ; " AlternateText ="Bir daha tıklayın!" ImageUrl = "~/IlkSayfalar/GuvenlikResmi.aspx" /> </ ContentTemplate > <Triggers > <asp : AsyncPostBackTrigger ControlID ="ImageButtonGuvenlikResminiDegistir" EventName ="Click" /> </ Triggers > </ asp : UpdatePanel > <asp : TextBox ID ="TextBoxGuvenlikNo" runat ="server" Width ="96px" class ="MetinKutusu" MaxLength ="6"></ asp : TextBox > <asp : ImageButton ID ="ImageButtonGuvenlikResminiDegistir" runat ="server" style =" vertical-align : bottom ; " ImageUrl ="~/IlkSayfalar/Images/Yenile.gif" onclick ="ImageButton1_Click" /> <br /> <asp : requiredfieldvalidator

Page 10: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

10

id ="RFVGuvenlikNo" runat ="server" ErrorMessage ="Güvenlik Numarasını Girmelisiniz" Display ="Dynamic" ControlToValidate ="TextBoxGuvenlikNo" Font-Names ="Arial" Font-Size ="Small" ValidationGroup ="KaydetButonuIleCalisacak" ></ asp : requiredfieldvalidator > </ td > </ tr > <tr > <td > </ td > <td > </ td > <td > <span > <img src ="Images/SoruIsareti.gif" /> <a title ="Okuyunuz!." href ="JavaScript:PopUp('hizmet_sozlesmesi.htm')"> Hizmet Sözle şmesini Okudum ve Kabul Ediyorum! </ a> </ span > <br /> <br /> <asp : Button ID ="ButtonKaydet" runat ="server" Height ="24px" Text ="Bilgileri Kaydet" OnClick ="ButtonKaydet_Click" /> <asp : Label ID ="LabelKaydet" runat ="server" ForeColor ="Red" ></ asp : Label > <br /> <br /> </ td > </ tr > </ table > </ div > </ form > </ body > </ html >

using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security;

Page 11: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

11

using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Windows.Forms; using System.Net.Mail; using System.Data.SqlClient; using System.Data.Sql; public partial class _UyeOl : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { if (!IsPostBack) { UlkeleriYukle(); //Ülkeleri Yükleyecek.... SehirleriYukle(); // Şehirleri Yükleyecek .. DropDownListUlke.SelectedItem.Text = "TÜRKİYE" ; } } protected void ButtonKaydet_Click( object sender, EventArgs e) { if (Page.IsValid) //Bo ş bırakılan alan yoksa kayıta geçecek.. { //Güvenlik Resminin do ğrulu ğunu kontrol ediyor... try { if (TextBoxGuvenlikNo.Text == HttpContext .Current.Request.Cookies[ "CerezGuvenlikKodu" ][ "GuvenlikKodu" ]) { //Aynı kullanıcı yok ise kaydedecek.. Nesneler Nesne = new Nesneler (); bool KullaniciVar = false ; KullaniciVar = Nesne.KullaniciA diKontrol( "SELECT KullaniciAdi FROM GeciciUyelerID " , TextBoxKullaniciAdi.Text); //Kullancı Adi kontrol edilirken sifrelenmi ş ifadeler kar şıla ştırmada zorluk oldu ğundan tamamı taranacak. WHERE KullanıcıAdı=@Kullanı cıAdi kar şıla ştırması yapılmadı KullaniciVar = Nesne.KullaniciA diKontrol( "SELECT KullaniciAdi FROM UyelerID " , TextBoxKullaniciAdi.Text); //Kullancı Adi kontrol edilirken sifrelenmi ş ifadeler kar şıla ştırmada zorluk oldu ğundan tamamı taranacak. WHERE KullanıcıAdı=@KullanıcıAdi kar şıla ştırması yapılmadı Nesne.Kapat();

Page 12: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

12

if (KullaniciVar == false ) // Aynı kullanıcı adı ile kayıtlı firma yok ise.. { string UyeTipi = null ; if (RadioButtonList1.SelectedValue != null ) { if (RadioButtonList1.SelectedValue == "0" ) { UyeTipi = "FirmaUye" ; } else if (RadioButtonList1.SelectedValue == "1" ) { UyeTipi = "AkademikUye" ; } string TarihSaat = DateTime .Now.ToString(); Nesne.Kaydet( "INSERT INTO GeciciUyelerID " + "(UyeTipi, AdSoyad, " + "Email, CepTelefonu, KullaniciAdi, Sifre, " + "KurumAdi,Ulke, Sehir, TarihSaat) " + " VALUES " + "(?,?," + "?,?,?,?," + "?,?,?,?)" , UyeTipi, TextBoxAdSoyad.Text .Trim(), Nesne.Sifreleme(Tex tBoxEmail.Text.Trim(), true ), TextBoxCepKodu.Text + TextBoxCepNumarasi.Text, Nesne.Sifreleme(TextBoxKullaniciAdi.Text.Trim(), true ), Nesne.Sifreleme(Tex tBoxSifre.Text.Trim(), true ), TextBoxFirmaAdi.Tex t, DropDownListUlke.Se lectedItem.Text, DropDownListSehir.S electedItem.Text, TarihSaat ); string GeciciUyeID = Nesne.GeciciUyeIDgetir( "SELECT GeciciUyeID, KullaniciAdi, TarihSaat FROM GeciciUyelerID" , TextBoxKullaniciAdi.Text, TarihSaat); string TiklanacakLink = string .Format( "http://www.sanayimiz.com/IlkSayfalar/UyeOnay.aspx? GeciciUyeID={0}&KullaniciAdi={1}" , GeciciUyeID, TextBoxKullaniciAdi.Text); try { MailAddress Kimden = new MailAddress ( "[email protected]" , "Sanayimiz.Com Admin" ); MailAddress Kime = new MailAddress (TextBoxEmail.Text.Trim(), "Değerli Üyemiz" );

Page 13: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

13

MailMessage Mesaj = new MailMessage (Kimden, Kime); Mesaj.Subject = "Sanayimiz.Com Üyeli ği" ; Mesaj.IsBodyHtml = true ; Mesaj.BodyEncoding = System.Text. Encoding .UTF8; Mesaj.Body = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>" + "<html>" + "<head>" + " <title>Sanayimiz.Com Üyeli ği</title>" + " <meta http-equiv=Content-Type content='text/html; charset=iso-8859-9'>" + "</head>" + "<body bgcolor='#FFFFFF'>" + "<table width='700' border='0' align='center' cellpadding='0' cellspacing='0'>" + "<tr>" + "<td><a href='http://www.sanayimiz.com'>" + "<img src='http://www.sanayimiz.com/IlkSayfalar/Images/Ar amaLogo.png'/>" + "</a>" + "<span style='font-family: Tahoma'>" + "<strong><br><br> Sanayimiz.Com </strong>" + "<span style='font-family: Tahoma'>" + "'a Üyeli ğinizin tamamlanması için a şağıdaki linke tıklayınız" + "<br><br>" + TiklanacakLink + "</span>" + "</td>" + "</tr>" + "</table>" + "</body>" + "</html>" ; SmtpClient smtp = new SmtpClient (); smtp.Credentials = new System.Net. NetworkCredential ( "SanayimizCom" , "123" ); //kullanici adi ve sifre sicili smtp.Port = 587; smtp.Host = "smtp.gmail.com" ; smtp.EnableSsl = true ; //Güvenli ba ğlantı true yapıldı smtp.Send(Mesaj); } catch ( Exception ex) { MessageBox .Show(ex.Message.ToString()); }

Page 14: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

14

//MAILIME MESAJI GÖNDER İYOR ------------------------------------------------- string KonuBasligi = "Sanayimiz.Com'a Üye Olan Yeni bir Üye Vardır!" ; string GondereninAdi = TextBoxAdSoyad.Text; string GondereninMailAdresi = TextBoxEmail.Text; string GondereninTelefonu = TextBoxCepKodu.Text + TextBoxCepNumarasi.Text; string GidecekKisi = "Ibrahim Cayiroglu" ; string GidecekMailAdresi = "[email protected]" ; string MesajIcerigi = TextBoxFirmaAdi.Text + "ADLI F İRMA SİTEMİZE KAYDOLMUŞTUR"; Nesne.MaileMesajGonder( GondereninAdi, GondereninMailAdresi, GondereninTe lefonu, GidecekKisi, GidecekMailAdresi, KonuBasligi, MesajIcerigi); string Mesaj1 = "TEŞEKKÜR EDERİZ!" ; string Mesaj2 = "Bilgileriniz Ula şmıştır. Mailinize gönderilen onay linkine tıklamanız gerekm ektedir. " + "Üyeli ğiniz tamamlanıp şifre giri şi yaptıktan sonra sizin için olu şturulmu ş web sayfasından di ğer tüm bilgilerinizi girmelisiniz." ; Response.Redirect( string .Format( "Onay.aspx?Mesaj1={0}&Mesaj2={1}" , Mesaj1, Mesaj2)); } else { LabelKaydet.Text = "Uyelik Türünü Seçmelisiniz" ; } } else { LabelKaydet.Text = "Bu Kullanıcı adı zaten mevcut !<br>Lütfen ba şka bir kullanıcı adı seçiniz." ; } } else { LabelKaydet.Text = "Güvenlik kodu do ğru girilmelidir.." ; } } catch { LabelKaydet.Text = "Kayıt için sayfa açıldıktan sonra uzun süre beklemi şsiniz. Sayfanın yeniden yüklenip Güvenlik kodunun y enilenmesi gerekmektedir." ; } } else { LabelKaydet.Text = "sayfa da hata var" ; }

Page 15: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

15

} //Ulke Seçilince, Şehirleri Deği ştirecek============================================ protected void DropDownListUlke_SelectedIndexChanged( object sender, EventArgs e) { if (DropDownListUlke.SelectedItem.ToString() != "TÜRKİYE" ) { DropDownListSehir.Items.Add( "YurtDı şı" ); DropDownListSehir.Text = "YurtDı şı" ; DropDownListSehir.Enabled = false ; } else { DropDownListSehir.Items.Clear(); DropDownListSehir.Enabled = true ; SehirleriYukle(); } } //ÜLKELER İ YÜKLEYECEK =================================================== =========== public void UlkeleriYukle() { Nesneler Nesne; String Sorgu; OleDbDataReader Okuyucu; Nesne = new Nesneler (); Sorgu = "SELECT UlkeID, Ulke FROM Ulkeler ORDER BY Ulke ASC " ; Okuyucu = Nesne.BilgileriReaderaOku(Sorgu); while (Okuyucu.Read()) { DropDownListUlke.Items.Add(Okuyucu[ "Ulke" ].ToString()); } Nesne.Kapat(); } // ŞEHİRLERİ YÜKLECEK =================================================== =========== public void SehirleriYukle() { Nesneler Nesne; String Sorgu; OleDbDataReader Okuyucu; Nesne = new Nesneler (); Sorgu = "SELECT Sehir FROM Sehirler ORDER BY Sehir ASC" ; Okuyucu = Nesne.BilgileriReaderaOku(Sorgu); while (Okuyucu.Read()) { DropDownListSehir.Items.Add(Okuyucu[ "Sehir" ].ToString()); }

Page 16: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

16

Nesne.Kapat(); } //TAB SAYFALARI DEG İŞTİĞİNDE ========================================== protected void TabContainer1_ActiveTabChanged1( object sender, EventArgs e) { if (TabContainer1.ActiveTabIndex == 0) { RadioButtonList1.Items[0].Enabled = true ; RadioButtonList1.Items[1].Enabled = false ; RadioButtonList1.SelectedValue = "0" ; LabelKurum.Text = "6- Firmanızın Adı:" ; } else if (TabContainer1.ActiveTabIndex == 1) { RadioButtonList1.Items[0].Enabled = false ; RadioButtonList1.Items[1].Enabled = true ; RadioButtonList1.SelectedValue = "1" ; LabelKurum.Text = "6- Çalı ştı ğınız Firma/Kurum:" ; } } /* //UYE T İPİ SEÇİMİ DEĞİŞTİĞİNDE ========================================== protected void RadioButtonList1_SelectedIndexCh anged(object sender, EventArgs e) { if (RadioButtonList1.SelectedValue == "0") { LabelKurum.Text = "5-Firmanızın Adı:"; } else if (RadioButtonList1.SelectedValue == "1") { LabelKurum.Text = "5-Çalı ştı ğınız Firma/Kurum:"; } else if (RadioButtonList1.SelectedValue == "2") { LabelKurum.Text = "5-Çalı ştı ğınız Firma/Kurum:"; } } */ protected void ImageButton1_Click( object sender, ImageClickEventArgs e) { if (ImageGuvenlikResmi.ImageUrl == "" ) { ImageGuvenlikResmi.ImageUrl = "~/IlkSayfalar/GuvenlikResmi.aspx" ; } else { ImageGuvenlikResmi.ImageUrl = null ; }

Page 17: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

17

} }

NESNELER SINIFI using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.OleDb; using System.Drawing; using System.Drawing.Imaging; using System.Data.SqlClient; using System.Text; using System.Collections; using System.Windows.Forms; using System.Net.Mail; using System.Data.Sql; using System.IO; // şifreleme için eklendi using System.Security.Cryptography; // şifreleme için eklendi //******************************* BENIM HAZIRLADI ĞIM NESNELER ******************************** public class Nesneler { OleDbConnection Baglanti; OleDbDataReader Okuyucu; //================================================= =================================== //KAYIT KONTROL (ExecuteReader) yordamı (aynı sicil nolu yada kullanıcı adlı biri varmı kontrol eder). (Aynı kayıttan varmı , kontrol edecek) =============================== public bool KullaniciAdiKontrol( string SorguStr, string KullaniciAdi) //Dı şarıdan SQL sorgusu içinde kaç tane parametre geldiy se dizinin içine atıyor... { String BaglantiYolu = ConfigurationManager .ConnectionStrings[ "VTbaglantisi" ].ConnectionString; OleDbConnection Baglanti = new OleDbConnection (BaglantiYolu); if (Baglanti.State != ConnectionState .Open){Baglanti.Open();} OleDbCommand Komut = new OleDbCommand(SorguStr, Baglanti); //Komut.Parameters.AddWithValue("@KullaniciAdi", Ku llaniciAdi); OleDbDataReader Okuyucu = Komut.ExecuteReader(); while (Okuyucu.Read())

Page 18: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

18

{ if (Sifreleme(Okuyucu[ "KullaniciAdi" ].ToString(), false ) == KullaniciAdi) //Kullanici Adi şifrelenerek kaydedildi ğinden önce şifreyi çözüyor. { Baglanti.Close(); Okuyucu.Close(); return true ; //Aynı kayıttan var demektir... } } Baglanti.Close(); Okuyucu.Close(); return false ; //Okunacak kayıt bulamadıysa ba şka bir ki şi yok demektir ve False gönderir. böylece geldi ği yerde kayıt yapabilir... } //VER İTABANINI KAPATMA ================================== ===== public void Kapat() { try { Baglanti.Close(); Okuyucu.Close(); Baglanti.Dispose(); } catch { } } //KAYDET YORDAMI (ExecuteNonQuery)================================== ============== public void Kaydet( string SorguStr, params object [] Parametreler) //Dı şarıdan SQL sorgusu içinde kaç tane parametre geldiy se dizinin için atıyor... { String BaglantiYolu = ConfigurationManager .ConnectionStrings[ "VTbaglantisi" ].ConnectionString; //Yolu web.config dosyasından alıyor.. OleDbConnection Baglanti = new OleDbConnection (BaglantiYolu); Baglanti.Open(); OleDbCommand Komut = new OleDbCommand(); Komut.Connection = Baglanti; Komut.CommandType = CommandType.Text; Komut.CommandText = SorguStr; if (Parametreler != null ) //Dı şarıdan kaç tane parametre geldi ise bunların içinde ki herbir de ğeri okuyup sorgu de ği şkenine yükleyecek.. { foreach ( object Parametre in Parametreler) { Komut.Parameters.AddWithValue( "?" , Parametre); } } Komut.ExecuteNonQuery();

Page 19: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

19

Baglanti.Close(); Baglanti.Dispose(); }

GÜVENLİK RESMİNİ UYGULAMASI <%@ Page Language ="C#" AutoEventWireup ="true" CodeFile ="GuvenlikResmi.aspx.cs" Inherits ="Default2" %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona l.dtd"> <html xmlns ="http://www.w3.org/1999/xhtml"> <head runat ="server"> <title >Untitled Page </ title > </ head > <body > <form id ="form1" runat ="server"> <div > </ div > </ form > </ body > </ html >

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Drawing2D; public partial class Default2 : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { int RastgeleSayi; string GuvenlikKodu = "" ; string [] KullanilacakKarekterler = new string [] { "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "r" , "s" , "t" , "u" , "v" , "w" , "x" , "y" , "z" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "0" }; string [] OlusanKod = new string [4]; Random Rastgele = new Random(); for ( int i = 0; i < OlusanKod.Length; i++) { RastgeleSayi = Rastgele.Next(0, 33); GuvenlikKodu += KullanilacakKarekterler [RastgeleSayi]; }

Page 20: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

20

Bitmap BirmapResim = new Bitmap (100, 35); Graphics GrafikNesnesi = Graphics .FromImage(BirmapResim); GrafikNesnesi.SmoothingMode = System.Drawing.Drawing2D. SmoothingMode .HighQuality; //Grafi ğin Kalitesi GrafikNesnesi.FillRectangle( new SolidBrush ( Color .Blue), 0, 0, 100, 35); //Dörtgen çiziliyor. GrafikNesnesi.DrawString(GuvenlikKodu, new Font ( "Tahoma" , 20), new SolidBrush ( Color .Yellow), 16, 0); //Yazı grafigin içerisine yazılıyor. int RastgeleKonum = Rastgele.Next(10, 50); GrafikNesnesi.DrawEllipse ( new Pen( Color .White), RastgeleKonum, RastgeleKonum, RastgeleKonum + 65, RastgeleKonum); //Yay olu şturuluyor. GrafikNesnesi.DrawLine( new Pen( Color .DarkTurquoise), RastgeleKonum, RastgeleKonum - RastgeleKonum, RastgeleKonum - Rast geleKonum * 2, RastgeleKonum); //Çizgi olu şturuluyor. GrafikNesnesi.DrawLine( new Pen( Color .Red), RastgeleKonum * 2, 0, RastgeleKonum * 2 + 50, RastgeleKonum + 50); //Çizgi olu şturuluyor. GrafikNesnesi.DrawLine( new Pen( Color .LightGreen), RastgeleKonum + 50, 0, RastgeleKonum, RastgeleKonum); //Çizgi olu şturuluyor. GrafikNesnesi.DrawLine( new Pen( Color .DarkOrange), RastgeleKonum-20, RastgeleKonum - 20, RastgeleKonum + 200, RastgeleKo num+50); //Çizgi olu şturuluyor. //Session.Add("GuvenlikKodu", GuvenlikKodu); HttpCookie CerezGuvenlikKodu = new HttpCookie ( "CerezGuvenlikKodu" ); CerezGuvenlikKodu.Values[ "GuvenlikKodu" ] = GuvenlikKodu; HttpContext .Current.Response.Cookies.Add(CerezGuvenlikKodu); BirmapResim.Save(Response.OutputStream, System.Drawing.Imaging. ImageFormat .Gif); //Resim kaydediliyor. GrafikNesnesi.Dispose(); //GrafikNesnesi nesnesi Çöp Toplayıcıya a atılıyor. BirmapResim.Dispose(); //BirmapResim nesnesi Çöp Toplayıcıya a atılıyor. } }

GÜVENLİK RESİM UYGULAMASI (Basit olan)

Default.aspx

Page 21: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

21

Default.aspx çalışır durumda

.ASPX.CS DOSYASI

using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class _Default : System.Web.UI. Page { protected void Button1_Click( object sender, EventArgs e) { //Default sayfası içerisindeki img nesnesinin Src k odu çalı şırken GüvenlikKodu.aspx çalı ştırıyor.

Page 22: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

22

//Bu sayfada ise hem arka plan hemde ratgele sayı b elirleniyor ve bu iki bir arada img.src olarak yükleniyor. //Aynı zamanda oradaki tutulan rastgele sayı Sessio n nesnesine atılıyor. //ve Session nesnesindeki rakamlar ile Resim üzerin deki görüntü kar şıla ştırılıyor. if (TextBox3.Text == Session[ "kod" ].ToString()) //Kullanıcının Resimde gördü ğü sayıları girdi ği Text kutusundaki bilgilerin do ğrulu ğunu kontrol ediyor. { if ((TextBox1.Text == "ali" || TextBox1.Text == "Ali" )&& TextBox2.Text == "123" ) { Label1.Text = " ŞİFRE DOĞRU...." ; } } else { Label1.Text = "Güvenlik kodunu do ğru giriniz." ; } } }

GUVENLIKKODU.ASPX DOSYASI <%@ Page Language ="VB" AutoEventWireup ="false" CodeFile ="Guvenlikkodu.aspx.vb" Inherits ="Guvenlikkodu" %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona l.dtd"> <html xmlns ="http://www.w3.org/1999/xhtml" > <head runat ="server"> <title >Untitled Page </ title > </ head > <body > <form id ="form1" runat ="server"> <div > <br /> &nbsp; </ div > </ form > </ body > </ html >

GUVENLIKKODU.VB DOSYASI Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Drawing.Imaging Imports System.Drawing.Text Partial Class Guvenlikkodu Inherits System.Web.UI.Page

Page 23: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

23

Protected Sub Page_Load( ByVal sender As Object , ByVal e As System.EventArgs) Handles Me.Load '1 ile 6 arasında arka plan desenini seçmek üzere r astgele bir sayı atıyor. Dim RastGeleArkaPlanSayisi As New Random 'Olu şturulan sayıyı stringe dönü ştürüyor. Dim sayi As String = Convert.ToString(RastGeleArkaPlanSayisi.Next(1, 6)) 'Sayıların gösterilece ği arka plan desenini seçiyor. Bu desenler daha önceden hazırlanmı ş 6 Dim ArkaPlanImage As New Bitmap(Server.MapPath( "~/resimler/GuvenlikBg" + sayi + ".jpg" )) Dim GuvenlikKodu As Graphics = Graphics.FromImage(ArkaPlanImage) GuvenlikKodu.SmoothingMode = SmoothingMode. AntiAlias 'Gösterilecek olan rastgele rakamları olu şturuyor Dim RastGeleGoruntulenecekSayi As New Random Dim Kodumuz As String = Convert.ToString(RastGeleGoruntulenecekSayi.Next(10 000, 99999)) 'Kayıt yerinde kullanmak üzere session'a atıyor. Session.Add( "kod" , Kodumuz) 'Rakamlarla Arka Planı birle ştiriyor. GuvenlikKodu.DrawString(Kodumuz, New Font( "Monotype corsiva" , 25, FontStyle.Italic), SystemBrushes.WindowText, New Point(15, 3)) Response.ContentType = "image/jpeg" ArkaPlanImage.Save(Response.OutputStream, I mageFormat.Gif) GuvenlikKodu.Dispose() End Sub End Class

MAİILE MESAJ GÖNDERME //MA İLE MESAJ GÖNDERME ================================ ======= public void MaileMesajGonder( string GondereninAdi, string GondereninMailAdresi, string GondereninTelefonu, string GidecekKisi, string GidecekMailAdresi, string KonuBasligi, string MesajIcerigi) { try { MailAddress Kimden = new MailAddress (GondereninMailAdresi, GondereninAdi);

Page 24: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

24

MailAddress Kime = new MailAddress (GidecekMailAdresi, GidecekKisi); MailMessage Mesaj = new MailMessage (Kimden, Kime); Mesaj.Subject = KonuBasligi; Mesaj.IsBodyHtml = true ; Mesaj.BodyEncoding = System.Text. Encoding .UTF8; Mesaj.Body = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>" + "<html>" + "<head>" + " <title>" + KonuBasligi + "</title>" + " <meta http-equiv=Content-Type content='text/html; charset=iso-8859-9'>" + "</head>" + "<body bgcolor='#FFFFFF'>" + "<table width='700' border='0' align='center' cellp adding='0' cellspacing='0'>" + "<tr>" + "<td><img src='http://www.sanayimiz.com/IlkSayfalar/Images/Ar amaLogo.png'/>" + "<span style='font-family: Tahoma'>" + "<strong><br><br> Sanayimiz.Com </strong>" + "<span style='font-family: Tahoma'>" + "Mesaj Bilgileri A şağıda verilmi ştir" + "<br><br>Mesaj Gönderen:" + GondereninAdi + "<br><br>Maili:" + GondereninMailAdresi + "<br><br>Telefonu:" + GondereninTelefonu + "<br><br>Tarih:" + DateTime .Now.ToString() + "<br><br>Mesajı:" + MesajIcerigi + "</span>" + "</td>" + "</tr>" + "</table>" + "</body>" + "</html>" ; SmtpClient smtp = new SmtpClient (); smtp.Credentials = new System.Net. NetworkCredential ( "SanayimizCom" , "*****" ); //kullanici adi ve sifre sicili smtp.Port = 587; smtp.Host = "smtp.gmail.com" ; smtp.EnableSsl = true ; //Güvenli ba ğlantı true yapıldı smtp.Send(Mesaj); } catch ( Exception ex)

Page 25: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

25

{ MessageBox .Show(ex.Message.ToString()); } } *************************************************************

İNTERNETTEN NOTLAR

VALIDATION (Do ğrulama) KONTROLLERİ

MaskedEdit: MaskedEdit kontrolü textbox üzerinde giris denetimleri saglayan bir ajax nesnesidir. Bu nesne textboxlara uygulandıgında seçilen veri tipine baglı olarak kullanıcının girecegi deger maskelenir. Girilen verilerin dogrulanması için MaskedEditValidator nesnesini kullanırız. Bu nesneyi nerelerde kullanabiliriz? Bana kalırsa hemen hemen her yerde. Tarih girislerinde, para birimi girislerinde, sadece yazı yada sadece numeric degerleri girmek istedigimiz her yerde bu nesneyi kullanabiliriz. Kullanımı: <ajaxToolkit:MaskedEditExtender TargetControlID="TextBox2" Mask="99,999.99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" OnInvalidCssClass="MaskedEditError" MaskType="Number" InputDirection="RightToLeft" AcceptNegative="Left" DisplayMoney="Left"/> Maskeleme Karakterleri 9 - Sadece numeric deger L - Harf $ - Harf yada bosluk C - Custom karakter(büyük küçük harf duyarlı) A - Custom karakter yada harf N - Custom karakter yada numeric deger ? - herhangi bir karakter Maskeleme Araçları / - Tarih Ayıracı : - Zaman ayıracı . - Ondalok ayıracı

Page 26: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

26

, - Binlik ayıracı DisplayMoney: Para biriminin nasıl gösterilecegini belirler. (sol, sag, none) InputDirection: Veri girisinin baslangıç yönünü belirler. MaskType: Maskeleme tipini belirtir. None - Valdiation yok Number - Numeric validation Date - Tarih validation Time - Zaman validation MessageValidatorTip: Textboxın içerigi degistiginde görüntülenecek mesaj. MaskedEditValidator: Maskelenen textboxdaki verilerin dogrulugunu kontrol etmek için kullanılan kontroldür. Kullanımı: <ajaxToolkit:MaskedEditValidator ControlExtender="MaskedEditExtender2" ControlToValidate="TextBox2" IsValidEmpty="False" MaximumValue="12000" EmptyValueMessage="Number is required" InvalidValueMessage="Number is invalid" MaximumValueMessage="Number > 12.000" MinimumValueMessage="Number < -100" MinimumValue="-100" ValidationGroup="Demo1" Display="Dynamic" TooltipMessage="Input a number: -100 up to 12.000"/> Özellikleri: ControlToValidate - Kontrol edilecek olan textbox'ın ID'si ControlExtender - Maskeleme yapan Extenderin ID'si ClientValidationFunction - Custom validator içim kullanolan fonksiyon InitialValue - Validation'un baslangıç degeri. Varsayılanı bostur IsValidEmpty - Textbox bossa requiredfield validator'ı çalısır. MaximumValue - Maskeleme için max. Deger. (CompareValidator çalısır) MinimumValue - Maskeleme için min. Deger. (CompareValidator çalısır) MessageEmpty - RequiredValidator çalıstıgında verillecek mesaj MaximumValueMessage - Max degerden büyük bir deger girildiginde verilecek mesaj. (CompareValidator çalısır) MinimumValueMessage - Min degerden büyük bir deger girildiginde verilecek mesaj. (CompareValidator çalısır) InvalidValueMessage - Geçersiz deger girildiginde görüntülenecek mesaj TooltipMessage - textbox üzerinde gelince yada bosken görüntülenecek olan tooltip degeri. ValidationExpression - Veriyi dogrulamak için kullanılan Regular expression. ASP.NET - VALIDATION (Doğrulama) KONTROLLERİ

Page 27: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

27

Örnek: Örnegimizde tarih alanına veri girerek istedigimiz kritere uygun olup olmadıgını kontrol edip verilerin dogrulanmasını, eger girilen veri yanlısssa kullanıcının bilgilendirilmesini saglayacagız. Örnegimize geçelim ve yeni bir Ajax Projesi açalım. Sayfamıza script manager, textbox, MaskedEditExtender, MaskedEditValidationExtender koyalım.

Simdi maskleme ve validation için gerekli kodları yazalım. Bunun için HTML kod kısmına geçelim. Maskeleme islemi

Validation islemi

Page 28: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

28

Projemizi çalıstıralım; ve Geçersiz bir tarih girelim

Simdi belirtilen tarihten büyük bir tarih girelim;

Simdi belirtilen tarihten küçük bir tarih girelim;

Page 29: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

29

Evet gerçekten çok kullanıslı 2 kontrol. Ufak tefek bugları var ama zamanla düzeleceginden hiç kuskum yok :) Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz [email protected] Kaynaklar http://ajax.asp.net ****************************************************************** AJAX Validator Callout Extender

Validator Callout Extender Açıklama ValidatorCallout nesnesi, varolan ASP.NET Valditarları genisleten bir AJAX nesnesidir. Bu kontrolü herhangi bir Validator nesnesine baglayarak kullanabilirsiniz. Validator Callout Extender Postback olmadan verilerin dogru girilip girilmedigini kontrol eder. Özellikleri · TargetControlID - Uygulanacak olan Validator Nesnesinin ID'si · Width - Görüntülenecek olan Uyarı Mesajının Genisigi · HighlightCssClass - Uyarı mesajının Sitili · WarningIconImageUrl - Hata Mesajına Ait Resmin yolu · CloseImageUrl - Kapat butonuna ait Resmin yolu Kullanımı <ajaxToolkit:ValidatorCalloutExtender runat="Server" ID="PNReqE" TargetControlID="rfMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" /> Örnek; Ilk olarak bir Ajax tabanlı bir Asp.net projesi olusturalım.

Page 30: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

30

Projemizi olusturduktan sonra örnekte yapacaklarımıza geçelim. Maillist olusturan bir sayfa tasarlayalım. Burada kullanıcı gerekli alanları doldurdu mu yada geçerli bir mail adresi girdimi girmedi mi bunları kontrol edecegiz. Projemize 3 label, 2 Textbox, 1 button, 2 adet ReguiredField Validator'ı ve 1 adette Regular Expression Validator'ı ekleyelim. Benim Tasarladıgım Form Asagıdaki Gibidir.

Simdi burada ad soyad alanlarını zorunlu kılacagız ve mail alanına girilen alanında geçerli bir mail adresi olmasını saglayacagız. Ekledigimiz Validarların özelliklerini belirleyelim. <table style="width: 425px"> <tr> <td colspan="3"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="E-Mail Listesine Katıl"></asp:Label></td> </tr> <tr>

Page 31: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

31

<td style="width: 58px"> </td> <td style="width: 54px"> </td> <td style="width: 100px"> </td> </tr> <tr> <td style="width: 58px; height: 22px"> <asp:Label ID="Label2" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="Ad Soyad"></asp:Label></td> <td style="width: 54px; height: 22px"> <asp:TextBox ID="TextBox1" runat="server" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:TextBox></td> <td style="width: 100px; height: 22px"> <asp:RequiredFieldValidator ID="rfAdSoyad" runat="server" ControlToValidate="TextBox1" Display="None" ErrorMessage="Lütfen Adınızı Ve Soyadınızı Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:RequiredFieldValidator> </td> </tr> <tr> <td style="width: 58px"> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="Mail"></asp:Label></td> <td style="width: 54px"> <asp:TextBox ID="TextBox2" runat="server" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:TextBox></td> <td style="width: 100px"> <asp:RegularExpressionValidator ID="reMail" runat="server" ControlToValidate="TextBox2" Display="None" ErrorMessage="Lütfen geçerli bi Email Adresi Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small" ValidationExpression="\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> <asp:RequiredFieldValidator ID="rfMail" runat="server" ControlToValidate="TextBox2" Display="None" ErrorMessage="Lütfen Emalinizi Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:RequiredFieldValidator> </td> </tr> <tr> <td style="width: 58px; height: 26px"> </td> <td style="width: 54px; height: 26px"> <asp:Button ID="Button1" runat="server" Text="Gönder" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" /></td> <td style="width: 100px; height: 26px"> </td> </tr> </table> Validatorlarımızın özelliklerini belirledik. Ama bizim yapmak istedigimiz AJAX Validator Callout Extender nesnesi ile verilerin dogu girilip girilmedigini kontrol etmekti bunun için sayfamıza 3 adet Validator Callout Extender nesnesi ekleyelim.

Page 32: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

32

Eklemis oldugumuz bu nesneleri ASP.NET validatorları ile iliskilendirelim. /*Geçerli Mail Adresi girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" TargetControlID="reMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> /*Adsoyad Alanına veri girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="rfAdSoyad" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> /* Mail Adresi alanına veri girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" TargetControlID="rfMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> Kontrollerimizi iliskilendirdikten sonra yapmıs oldugumuz sayfayı test Edelim.

Page 33: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

33

Simdi de hatalı bir mail adresi girelim.

Ortaya görsel açıdan çok güzel bir seyler çıktı. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz ************************** Validation Kontrolleri Kompleks web sitelerinin birçoğunda üyelik sistemi veya forum gibi server-client arasında iletişim kurulmasını gerektiren uygulamalar vardır. ASP ve PHP gibi server taraflı platformların kullanımının yaygınlık kazanmasından sonra birçok web sitesi üyelik sistemi kullanmaya başlamış, sadece üyelerin ulaşabildiği forum gibi uygulamaları sunmuştur. Kaynak sitelerin artmasıyla birlikte, birkaç yıl önce örnekleri sadece alışveriş siteleri gibi

Page 34: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

34

büyük projelerde görülebilen üyelik başvurusu formları, bir nevi özelleşmiş ve herkesin kullanmaya başladığı bir uygulama olmuştur. Bedava ASP veya PHP hosting hizmeti veren web sitelerinin de artışıyla birlikte her sitenin forumu ve böylece bir üye topluluğu olmuştur. Birçok web programcısı değişik tarzlarda üyelik başvurusu formları hazırlamıştır. Çoğu kez ziyaretçinin girdiği değerleri kontrol edip uygunsuz üyelik başvurularının önüne geçmek büyük bir sorun oluşturmuştur. Bazıları işin kolayına gidip kullanıcısına pek yardımcı olmayan formlar hazırlamayı tercih etmişlerdir. User-friendly olmayan bu formlar beyaz ve boş bir sayfada "Kullanıcı adınız 4 karakterden uzun olmalıdır" demekle yetinmişlerdir. Özellikle bedava SMTP mail hizmeti veren, bu işe gerçekten para yatırıp zaman harcayan Yahoo veya Hotmail benzeri sitelerin başvuru formları web programcılarının hayallerini süslemiş ve hedefleri olmuştur. Kullanıcısını anlamayan ve çıkan hataları tokat gibi yüzüne çarpan formlar yerine daha arkadaşçıl formlar tercih edilmeye başlamıştır. Ancak Yahoo veya Hotmail ''in sahip olduğu üye başvuru formunu yapmak da pek kolay değildir. Birçok kişi bu uğurda uzun zaman harcamıştır. Çoğu ASP veya PHP ''nin yetersizliğine bu sırada kanaat getirmiş, eskinin el üstünde tutulan teknolojilerinin artık eskidiğini düşünmüşlerdir. Klasik ASP ile, hiçbir alanı doldurulmadan gönderilen bir formu tekrar göstermek ve doldurulması gereken input kutularının yanına kırmızı bir font ile hata yazısı yazmak kolay iş değildir. Bazı web programcıları ise daha ileri gidip bu kontrollerin sayfa tekrar yüklenmeden yapılmasını istemiştir. Bunu istemek her ne kadar çok kolay olsa da her şey o kadar kolay değildir. JavaScript ile birşeyler yapılabilir belki ama bu uğurda günler harcanmıştır. Validation Kontrolleri ASP.NET Server kontrollerinden birisi de Validation (Geçerlilik) kontrolleridir. Server taraflı validation kontrolleri onaylanması istenen veriyi kontrol edip gerekirse hata mesajı gösterir. Server bu kontrollere gizli (invisible) kontroller olarak davranır. Kullanıcı istenmeyen bir veri girişi yaptığında kontrol görünür (visible) olur. 6 çeşit validation kontrolü ASP.NET ile web programcısının kullanımına sunulmuştur. • RequiredFieldValidator : input kontrolünün herhangi bir değer taşıyıp taşımadığını kontrol eder. • RegularExpressionValidator : input kontrolünün değerini programcının belirlediği regular expression ile karşılaştırıp kontrol eder. • CompareValidator : Programcının belirlediği iki input kontrolünün değerini veya input kontrolünün değeri ile yine programcının belirlediği bir değeri karşılaştırır. • RangeValidator : input kontrolünün değerinin belirli bir aralıkta olup olmadığını kontrol eder. • CustomValidator : Özelleştirilmiş validation kontrolleri geliştirmenizi sağlar. • ValidationSummary : Formdaki tüm validation hatalarının özetini verir. Validation kontrolleri görevlerini server tarafında olduğu gibi client (istemci) tarafında da gerçekleştirirler. RequiredFieldValidator dışındaki kontroller boş input kontrolünde uygunsuz bir durum bulamazlar. Bir input kontrolü için birden fazla validation kontrolü kullanılabilir. Validation kontrollerinin en yaygın kullanılacak olan birkaç özelliği şunlardır. • ErrorMessage : Bu özelliğin değeri, kontrolün onaylaması istenen değerde uygunsuz bir durum olduğunda hata mesajı olarak gösterilir. Ayrıca ValidationSummary''de de bu mesaj gösterilir.

Page 35: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

35

• Display : Validation kontrolleri onaylayacakları değer hatalı olana kadar gizli beklerler. Kullanıcı veriyi girerken istenmeyen bir format kullanmışsa hata mesajı gösterilir. Display özelliğinin üç muhtemel değeri vardır. • Display="Static" : Mesajın gösterilmesi için gerekli alan başlangıçta ayrılır. • Display="Dynamic" : Hata mesajının gösterilmesi için yer ayrılmaz ve gerektiğinde sayfanın diğer içeriği ile yer değiştirilerek gösterilir. • Display="None" : ValidationSummary kullanılmadıkça hata mesajı gösterilmez. Mesaj özette gösterilir. RequiredFieldValidator RequiredFieldValidator adından da anlaşılabileceği gibi girilmesi zorunlu tutulan input kontrollerini denetlemek için kullanılır. Kontrolün bu görevi yerine getirebilmesi için denetleyeceği kontrolün id ''sini bilmesi yeterlidir. Boş bir input kontrolü RequiredFieldValidator gözünde hatalıdır. Kullanımı şu şekilde yapılır: RequiredFieldValidator

<asp:RequiredFieldValidator id="rfvParola" runat="server" ControlToValidate="txtParola" ErrorMessage="Parolayı girmelisiniz" Display="Static"/> RequiredFieldValidator kontrolüne denetleyeceği kontrolün id ''si ControlToValidate özelliği ile gösterilir. RegularExpressionValidator VBScript ''in son sürümüyle birlikte klasik ASP programcılarının da kullanmaya başladığı RegularExpression bu kontrolün ana bileşenini oluşturur. ControlToValidate özelliğinde id ''si verilen input kontrolünün değeri ValidationExpression özelliğinde verilen regular expression ifadesi ile karşılaştırılır. RegularExpressionValidator gerekli ifade oluşturulursa diğer bazı validation kontrollerinin görevini yapabilir. Örneğin bir kontrolün değerinin olup olmadığını kontrol edebilir. bilgi: RegularExpressionValidator

<asp:RegularExpressionValidator id="revParola" runat="server" Display="Static" ControlToValidate="txtParola" ErrorMessage="Parola 4-8 karakter olmalıdır" ValidationExpression="S{4,8}"/> Bu RegularExpressionValidator kontrolündeki regular expression ifadesine göre txtParola kontrolünün değeri en az 4, en fazla 8 karakter olabilir. Aksi durumlarda hata mesajı gösterilir. CompareValidator Bu kontrol değişik şekillerde kullanılabilir. Bir kontrolün değeri ile başka bir kontrolün değerini karşılaştırabileceğiniz gibi bir kontrolün değeri ile spesifik (belirli) bir değeri de karşılaştırabilirsiniz. Ayrıca kontrolün değerinin belirli bir veri tipinde olup olmadığını da denetleyebilirsiniz. İki kontrolün değerini karşılaştırmak için ControlToValidate ile birlikte ControlToCompare

Page 36: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

36

özelliği de kullanılır. İki değer aynı değilse hata mesajı gösterilir. İki kontrolün değerini karşılaştırma

<asp:CompareValidator id="cvParola" runat="server" ControlToValidate="txtParola1" ControlToCompare="txtParola2" ErrorMessage="Parolalar aynı olmalıdır"/> Bir kontrol ile özel bir değeri karşılaştırmak içinse ValueToCompare özelliği kullanılır. Kontrolün değeri ile özel bir değeri karşılaştırma

<asp:CompareValidator id="cvParola" runat="server" ControlToValidate="txtParola" ValueToCompare="parola" ErrorMessage="Parolayı yanlış girdiniz"/> Gördüğünüz gibi txtParola kontrolünün değeri ile ValueToCompare özelliğinin değerini bu kontrol ile karşılaştırabiliyoruz. Ben size örnek vermek için parola denetlemesi yapan bir CompareValidator kullandım ama programcının belirleyeceği parola kaynak kodda görüneceği için pek güvenilir bir yöntem olmaz. Nasıl kullanacağınız size bağlı.. Kontrolün değerinin veri türünü denetleme

<asp:CompareValidator id="cvParola" runat="server" ControlToValidate="txtParola" ErrorMessage="Sayısal bir değer girmelisiniz" Operator="DataTypeCheck" Type="Integer"/> Bilgi: Bahadır şöyle kullanmış, virgüllü sayıları görmüyor. <asp : RegularExpressionValidator ID ="REG1" runat ="server" ControlToValidate ="TextBoxFiyati" ErrorMessage ="Fiyat için girdi ğiniz de ğer sayısal olmalı." Display ="Dynamic" ValidationExpression ="\d{1,6}" /> Bu CompareValidator kontrolü txtParola kontrolünün değerinin "Integer" türünde olmasını ister. CompareValidator bu denetlemeyi txtParola ''nın değerini Type özelliğinde belirtilen veri türüne dönüştürmeyi deneyerek yapar. txtParola ''ya girilen değer "Integer" ''e dönüştürülemiyorsa "InValid" (uygunsuz) bir durum söz konusu olduğuna karar verilir ve hata gösterilir. Ayrıca Operator özelliğine DataTypeCheck değeri verilerek veri türü kontrolü yapılmak istendiği belirtilir. RangeValidator RangeValidator ile denetlenen kontrolün değerinin belli bir aralıkta olup olmadığı kontrol edilir. MinimumValue ve MaximumValue özellikleri ile değerin hangi sayı aralığında olabileceği belirtilir. RangeValidator

<asp:RangeValidator id="rvNumara" runat="server" ControlToValidate="txtNumara" ErrorMessage="Küçük veya büyük oldu" MinimumValue="2" MaximumValue="8"/> CustomValidator

Page 37: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

37

ASP.NET ''in web programcısına sunduğu validation kontrolleri yetersiz kaldığında CustomValidator imdata koşar. CustomValidator ''ın görevi programcı tarafında yazılan bir sub routine (alt program) ile verilir. Denetlemenin sonucu da sub routine içerisinde belirtilir. CustomValidator

<script runat="server" language="vb"> Sub ParolayıKontrolEt(Sender As Object, E As ServerValidateEventArgs)if E.Value = "parola" or E.Value = "sifre" then E.IsValid = True else E.IsValid = False end if End Sub </script> <form runat="server"> <asp:TextBox id="txtParola" runat="server"/> <asp:CustomValidator id="cvParola" runat="server" ControlToValidate="txtParola" ErrorMessage="hata" OnServerValidate="ParolayıKontrolEt"/><br> <asp:Button id="btnOk" runat="server" text="Giris"/> </form> CustomValidator kontrolüne ControlToValidate özelliğinde denetlenecek input kontrolünün id ''si verilir. OnServerValidate özelliğine ise denetlemeyi yapacak sub routine ''in ismi yazılır. Bu sub iki parametre alır ve ikinci parametre ServerValidateEventArgs sınıfının bir örneğidir. Bu nesne ile denetlemeyi yapan validator kontrolünün özelliklerine ve yöntemlerine ulaşılabilir. If kontrolüyle birlikte validator kontrolü "valid" veya "invalid" yapılır. Her ne kadar CustomValidator kontrolü işini server tarafında yapacak olsa da, ASP.NET otomatik olarak denetleme işini yapacak JavaScript kodunu yazar. Bu kodların görünmesini engelleyecek ve böylece güvenliği bir kademe artırabilecek seçenekler detaya girdiği için daha ileride yer vereceğim. Validation kontrolleri RESİM ÇIKMIYOR Sonuç Validation (Geçerlilik) kontrolleri web programcılarının veriyi kontrol etmesini kolaylaştırıyor. Her türlü veri giriş formunun doldurulmasında ziyaretçinin bilerek/bilmeyerek yanlış formatta bilgi girmesi bu yolla engellenebiliyor. Klasik ASP ''de bu iş için uzun süre harcanıp karmaşık kodlar yazılırken ASP.NET ile birlikte bu işkence ortadan kalkıyor. Formdaki herhangi bir validation kontrolü, denetlediği input kontrolünün değerinin geçerli olmadığını düşünürse, formun gönderilmesini sağlayan buton pasifleşir. Tıklanabilir ama görevini yapamaz. Tüm alanlar geçerli olduğunda buton yeniden aktif olur. RequiredFieldValidator, RegularExpressionValidator, RangeValidator, CompareValidator ve CustomValidator bu makalemizin konusunu oluşturdu. Server taraflı CustomValidator örneği kullanarak basit bir örnek yaptım. Client (istemci) taraflı CustomValidator örneğini ise başka bir yazıda vereceğim. Ayrıca diğer bir validation kontrolü olan ValidationSummary hakkında da başka bir yazıda bahsedeceğim.

Page 38: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

38

ValidationSummary Control Displays a list of all validation errors on the Web page. <asp:ValidationSummary id="programmaticID" DisplayMode="BulletList | List | SingleParagra ph" EnableClientScript="true | false" ShowSummary="true | false" ShowMessageBox="true | false" HeaderText="TextToDisplayAsSummaryTitle" runat="server"/> Remarks The ValidationSummary control allows you to summarize the error messages from all validation controls on a Web page in a single location. The summary can be displayed as a list, a bulleted list, or a single paragraph, based on the value of the DisplayMode property. The error message displayed in the ValidationSummary control for each validation control on the page is specified by the ErrorMessage property of each validation control. If the ErrorMessage property of the validation control is not set, no error message is displayed in the ValidationSummary control for that validation control. You can also specify a custom title in the heading section of the ValidationSummary control by setting the HeaderText property. You can control whether the ValidationSummary control is displayed or hidden by setting the ShowSummary property. The summary can also be displayed in a message box by setting the ShowMessageBox property to true. For detailed information on the ValidationSummay control, see the ValidationSummary class. Example The following example demonstrates how to use the ValidationSummary control to summarize the input controls that fail validation on the page. Copy Code <html> <head> </head> <body> <h3>ValidationSummary Sample</h3> <p> <form runat="server"> <table cellpadding="10"> <tr> <td> <table bgcolor="#eeeeee" cellpadding="10"> <tr> <td colspan="3"> <b>Credit Card Information</b> </td> </tr> <tr> <td align="right"> Card Type:

Page 39: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

39

</td> <td> <asp:RadioButtonList id="RadioButtonList1" RepeatLayout="Flow" runat=server> <asp:ListItem>MasterCard</asp:ListItem> <asp:ListItem>Visa</asp:ListItem> </asp:RadioButtonList> </td> <td align="middle" rowspan="1"> <asp:RequiredFieldValidator id="RequiredFieldValidator1" ControlToValidate="RadioButtonList1" ErrorMessage="Card Type." Display="Static" InitialValue="" Width="100%" Text="*" runat="server"/> </td> </tr> <tr> <td align="right"> Card Number: </td> <td> <asp:TextBox id="TextBox1" runat="server" /> </td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator2" ControlToValidate="TextBox1" ErrorMessage="Card Number. " Display="Static" Width="100%" Text="*" runat=server/> </td> </tr> <tr> <td></td> <td> <asp:Button id="Button1" Text="Validate" runat=server /> </td> <td></td> </tr> </table> </td> <td valign=top> <table cellpadding="20"> <tr> <td> <asp:ValidationSummary id="valSum" DisplayMode="BulletList"

Page 40: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

40

EnableClientScript="true" HeaderText="You must enter a value in the following fields:" runat="server"/> </td> </tr> </table> </td> </tr> </table> </form> </body> </html> *************************************** Adding Validation Controls to the Editing Interface

Since the GridView's default editing interface does not provide any validation logic, an end user can

enter any sort of data into the editable row's TextBoxes. Looking back at our last two editable

GridView examples, consider what would happen if the user entered a value of, say, Sam for the Unit

Price of a product. Such actions would result in an exception, since the database cannot set a decimal

field to a string value. Similarly, we might want to impose certain business rules, such as the Unit Price

is greater than 0, or that Product Name is a required field.

The GridView's editing interface can be manipulated on a column-by-column level. This is

accomplished by using TemplateFields in place of BoundFields, and specifying the editable interface to

be used. Let's examine how this is done by tweaking the earlier editable GridView bound to a

SqlDataSource example to utilize validation controls in the Product, Unit Price, and Units In Stock

columns.

The first step is to transform those three columns into TemplateFields. The simplest way to do this it to

go to the Design view and click the Edit Columns link in the GridView's Smart Tag. Selecting a

BoundField from the column list in the bottom left hand corner, you will see a Convert this field into a

TemplateField link (see Figure 43). Go ahead and turn the Product, Unit Price, and Units In Stock

columns into TemplateFields.

Page 41: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

41

Figure 43

As we saw earlier, when a GridView row is made editable, the BoundFields turn into TextBoxes. The

TemplateFields, on the other hand, render whatever HTML markup and Web control syntax you specify

in the TemplateField's EditItemTemplate. To edit a TemplateField's EditItemTemplate, choose the

Edit Templates link from the GridView's Smart Tag. This will allow you to select what Template for

what column you want to edit.

Note If a TemplateField lacks an EditItemTemplate the GridView column will be non-editable.

Notice that by converting the BoundFields into TemplateFields through the Design view, the

TemplateField will contain an EditItemTemplate with a TextBox. Figure 44 shows editing the Product

column's EditItemTemplate. The TextBox present was not added by myself, but placed there

automatically when converting to the TemplateField.

Figure 44

Page 42: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

42

To add validation controls to an EditItemTemplate, simply drag and drop the appropriate validation

controls from the Toolbox into the EditItemTemplate. Let's add a RequiredFieldValidator in the

Product EditItemTemplate, and CompareValidators in the Unit Price and Units In Stock columns to

ensure that the data entered is of the right type. Finally, add a ValidationSummary control to the

page to display information about invalid data to the user.

Once you have added the validation controls your ASP.NET page's declarative syntax should look

similar to the following:

Copy <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="productDataSource" Runat="server" ConnectionString="<%$ ConnectionStrings:NWConnectionString %>" UpdateCommand="UPDATE [Products] SET [ProductName] = @ProductName, [UnitPrice] = @UnitPrice, [UnitsInStock] = @UnitsInStock WHERE [ProductID] = @original_ProductID" SelectCommand="SELECT [ProductName], [ProductID], [UnitPrice], [UnitsInStock] FROM [Products]"> <UpdateParameters> <asp:Parameter Type="String" Name="ProductName"></asp:Parameter> <asp:Parameter Type="Decimal" Name="UnitPrice"></asp:Parameter> <asp:Parameter Type="Int16" Name="UnitsInStock"></asp:Parameter> <asp:Parameter Type="Int32" Name="ProductID"></asp:Parameter> </UpdateParameters> </asp:SqlDataSource> <asp:GridView ID="GridView1" Runat="server" BorderColor="#3366CC" BorderStyle="None" CellPadding="4" BackColor="White" BorderWidth="1px" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="productDataSource"> <FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle> <PagerStyle ForeColor="#003399" HorizontalAlign="Left" BackColor="#99CCCC"></PagerStyle> <HeaderStyle ForeColor="#CCCCFF" Font-Bold="True" BackColor="#003399"></HeaderStyle> <Columns> <asp:CommandField ShowEditButton="True"></asp:CommandField> <asp:BoundField ReadOnly="True" HeaderText="ProductID" InsertVisible="False" DataField="ProductID" SortExpression="ProductID"></asp:BoundField> <asp:TemplateField SortExpression="ProductName"

Page 43: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

43

HeaderText="Product"><EditItemTemplate> <asp:TextBox ID="editProductName" Runat="server" Text='<%# Bind("ProductName") %>'></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ErrorMessage="You must provide a Product Name." ControlToValidate="editProductName"> *</asp:RequiredFieldValidator> </EditItemTemplate> <ItemTemplate> <asp:Label Runat="server" Text='<%# Bind("ProductName") %>' ID="Label3"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField SortExpression="UnitPrice" HeaderText="Unit Price"><EditItemTemplate> <asp:TextBox ID="editUnitPrice" Runat="server" Text='<%# Bind("UnitPrice", "{0:#,##0.00}") %>' Columns="6"></asp:TextBox> <asp:CompareValidator ID="CompareValidator1" Runat="server" ErrorMessage="You must provide a valid currency value for the Unit Price." ControlToValidate="editUnitPrice" Operator="DataTypeCheck" Type="Currency"> *</asp:CompareValidator> </EditItemTemplate> <ItemStyle HorizontalAlign="Right"></ItemStyle> <ItemTemplate> <asp:Label Runat="server" Text='<%# Bind("UnitPrice", "{0:c}") %>' ID="Label1"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField SortExpression="UnitsInStock" HeaderText="Units In Stock"><EditItemTemplate> <asp:TextBox ID="editUnitsInStock" Runat="server" Text='<%# Bind("UnitsInStock") %>' Columns="4"></asp:TextBox> <asp:CompareValidator ID="CompareValidator2" Runat="server" ErrorMessage="You must provide a valid integer for Units In Stock." ControlToValidate="editUnitsInStock" Operator="DataTypeCheck" Type="Integer"> *</asp:CompareValidator> </EditItemTemplate> <ItemStyle HorizontalAlign="Right"></ItemStyle> <ItemTemplate> <asp:Label Runat="server" Text='<%# Bind("UnitsInStock") %>' ID="Label2"></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <SelectedRowStyle ForeColor="#CCFF99" Font-Bold="True" BackColor="#009999"></SelectedRowStyle>

Page 44: FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ · 1 FORM VE VAL İDATION (Do ğrulama) KONTROLLERI ÖRNE Ğİ İLK BASİT VALİDATION (Doğrulama) ÖRNEĞİ

44

<RowStyle ForeColor="#003399" BackColor="White"></RowStyle> </asp:GridView> </div> <div> <asp:ValidationSummary ID="ValidationSummary1" Runat="server" /> </div> </form> </body> </html> When editing a GridView row you may be wondering how the TextBox is populated with the correct

field value for the editable row. As you can see in the TextBox Web control's declarative syntax, the

magic is in the Bind() method. Setting the TextBox's Text property to <%# Bind(fieldName) %>

displays the value of the field fieldName in the TextBox. This same syntax is also used in the Label Web

controls in the TemplateFields' ItemTemplates.

Figure 45 shows a screenshot of the enhanced editable GridView. Note that if invalid values are

entered into the fields the underlying data is not updated and the validation summary at the bottom

of the GridView indicates what problems exist.

Figure 45 (Click on the graphic for a larger image)

***************************************