Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


QueryString İşlemlerimiz

Yazar: Cengiz Atilla

Kategori: ASP.NET

Eklenme Tarihi: 10.05.2009 11:43:21

QueryString URL üzerinden veri taşımamıza yarar. İnternetde bir çok sitenin bu sekilde sayfalar arası veri taşırlar . Bu veri taşıma tekniği basit olduğu kadarda güvensiz bir yoldur. Kullanıcı isterse QueryString değerimizi manuel olarak değiştirir . Eğer site içerisinde önemli verilerimizi sayfalar arası taşımak ister isek tabiki bu yapı kullanılmamalıdır .
Makalemiz boyunca oluşturucağımız bir aspx sayfamızdan 3 adet veri alıp bunları butonun click olayında QueryString kullanarak diger sayfaya taşıyacağız .

Bunun için ilk önce Default.aspx sayfamızı aşağıdaki gibi düzenleyelim .



Default.aspx sayfamızda iki adet textbox ekledik ve bunlara txt_ad - txt_soyad id lerini atadık . Daha sonra bir adet dropdownlist ekledik ve items girerek resimdeki gibi değerleri atadık .
Bizim buradaki amacımız form içerisine girilen degerlerimizi detay.aspx sayfamızda görmek . Dropdown list imiz acık oldugu için altında duran buton resimde gözükmemekdedir. Butonumuzun adı btn_gonder olarak ayarladık . btn_gonder butonumuzun Click olayına gidelim ve yonlendirme kodlarımızın üzerinde konuşalım .

protected voidbtn_gonder_Click(objectsender, EventArgse)

{

Response.Redirect("detay.aspx?adi="+ txt_ad.Text + "&soyadi="+ txt_soyad.Text + "&takim="+ drp_takim.Text);

}

Kodumuzda Response.Redirect ile detay.aspx sayfasına yönleniceğimizi belirtiyoruz .

QueryString iki önemli sembol vardır. 
1 : ? sembolü url adresi ile querystring ifadelerimizi birbirinden ayırır . 
2 : & sembolu ise sayfalar arası tasıyacagımız veri birden çok ise verilerimizi ayırmak için kullanılır . 

Response.Redirect("detay.aspx?adi=" + txt_ad.Text + "&soyadi=" + txt_soyad.Text + "&takim=" + drp_takim.Text);

Gönder butonumuza bastığımız zaman aşagıdaki gibi URL adresimizin değiştiğini görürüz

Kodumuzda Response.Redirect ile detay.aspx sayfasına yönleniceğimizi belirtiyoruz .QueryString iki önemli sembol vardır. 1 : ? sembolü url adresi ile querystring ifadelerimizi birbirinden ayırır . 2 : & sembolu ise sayfalar arası tasıyacagımız veri birden çok ise verilerimizi ayırmak için kullanılır . Gönder butonumuza bastığımız zaman aşagıdaki gibi URL adresimizin değiştiğini görürüz

Yukarıdaki URL adresinde de olduğu gibi detay.aspx sayfasına yönlendik .
? ile sayfa ile değerlerimizi ayırdık . 
adi = Cengiz  adi degiskenimizde Cengiz degeri saklı 
& ile iki degisken verilerini ayırdık  ve soyadi degiskenine Atilla degeri saklı 
son olarak yine & kullanarak takim = Fenerbahçe degeri saklı 
Burda fenerbahçe nin yanında %c3%a7e türkçe karakter problemlerinden dolayı olmuştur . 

Şimdi detay.aspx sayfamızın page_load ına gidelim ve querystring den gelen verilerimiz karşılayalım . 

protected voidPage_Load(objectsender, EventArgse)

{

lbl_adiniz.Text = Request.QueryString["adi"];

lbl_soyadiniz.Text = Request.QueryString["soyadi"];

lbl_takim.Text = Request.QueryString["takim"];

}


Yukarıda ki kodlarımızı açıklayalım . Page_load kısmında gelen değerlerimiz yakalamamız ve bunları kullanmamız gerekmektedir. 
Request.Querystring[" degiskenadi "] seklinde verilerimizi yakalamakdayız .

Request.Querystring yerine Server.Transfer şeklinde kullanır isek URL kısmında değerlerimizin görünmemesinide sağlayabiliriz. 
Bunun için mevcut örneğimizi şu şekilde değiştirmemiz yeterli olucaktır. 

Default.aspx sayfamızdaki butonun olayında . 

Server.Transfer("detay.aspx?adi="+ txt_ad.Text + "&soyadi="+ txt_soyad.Text + "&takim="+ drp_takim.Text);

Son Olarak QueryString e Eklenmemesi Gereken Karakterler . 

# + & gibi semboller hataya yol açabilmekdedir . Bu ve bunun gibi hataları önlemek için Server.Encoding metotunu kullanmamız gerekmektedir. 

Her ne kadar server.transfer metotumuz bizim url miz e birşey yazmasada önemli verilerde kullanılmamalıdır . 

 Cengiz ATİLLA 
www.cengizatilla.com 
atilla@cengizatilla.com

Yazar Hakkında 1 Yorum Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.