Hani gormuşsunuzdur bazı sitelerde linkler klasor yapıları şeklindedir yada dosyaların uzantıları bildiğimiz uzantılara benzemez. Dosya uzantısı olayı normalde server tarafında halledilebilen bir olay olmasına karşın sizde hata sayfası yontemini kullanarak servera soz geciremeseniz dahi kendi uzantınızı kullanabilirsiniz.

Mesela bu sitenin dosya uzantıları .asp değil de .vbsturk olsa hoş olmaz mı? http://www.vbsturk.com/default.vbsturk yada http://www.aksu.web.tr/index.aksu gibi linklere sahip olabilirsiniz. Yada hicbir dosya uzantısı kullanmayıp linklerinizi klasor yapıları şeklinde verebilirsiniz. http://www.vbsturk.com/konular/20

Bunun icin yapılması gereken ilk işlem herhangi bir sayfa bulunamadığı durumlarda serverin istemciye gonderdiği 404 hata kodlu hata sayfasını kendi sayfamız ile değiştirmek. Bu işlemi eğer varsa hosting panelinizden yapabilirsiniz. Yada server yoneticisinden rica edebilirsiniz. Genellikle bu hata sayfasının değiştirilmesi icin kullanılan yere "/default.asp" yazmanız gerekir. Veya siz "/404.asp" gibi bir dosyada kullanabilirsiniz. Ben default.asp'yi kullandığınızı varsayıyorum.

Bu işlemden sonra artık herhangi bir sayfa bulunamadığında sayfa bulunamadı hatası yerine karşınıza default.asp sayfanız cıkacaktır. Orneklerimizde kullanmak uzere linkimizin http://www.vbsturk.com/konular/20 olduğunu varsayıyorum. Adres satırına boyle yazdığınızda yada boyle bir linki tıkladığınız da default.asp sayfasına yonlendiniz. Bilmeniz gereken şey ise siz adres satırına boyle yazdığınızda http://www.vbsturk.com/default.asp sayfasına gitmezsiniz. Adres satırı aynı kalır, sadece bulunamayan sayfa yerine default.asp sayfası işletilir.

Bu durumda default.asp dosyanızda adres satırında query string şeklindeki bu adresi alıp bunun icinden 20 sayısını suzup kullanıcımıza veritabanımızda ki 20 id numaralı konuyu gostereceğiz. Bunun icin oncelikle Request.ServerVariables("QUERY_STRING") diyerek adres satırındaki tum veriyi alıyoruz. Bu durumda elimize gecen veri 404;http://www.vbsturk.com/konular/20 şeklinde oluyor. Baştaki 404 sayfa bulunamadı hatasının kodu.

Adres satırında ki veriyi bu şekilde aldıktan sonra 20 değerini almak icin sizinde tahmin ettiğiniz gibi bu değeri "/" işaretlerinden bolmemiz gerekiyor. Kod ile ornek verelim.





Elimize gecen dizi elemanlarını buraya yazalım ve aradığımız verinin dizinin kacıncı elemanı olduğunu gorelim.
strDizi(0) =" 404;http:"
strDizi(1) ="" // işaretinin arasında bişey olmadığı icin bu değer boş.
strDizi(2) = "www.vbsturk.com"
strDizi(3) = "konular"
strDizi(4) = "20"

Gorduğunuz uzere bize gereken id numarası dizinin 5 elemanı. (Diziler 0'dan başladığı icin numarası 4)

Şimdi şoyle bir sorgu kuralım. Eğer gelen veriler arasında dizinin 4 elemanı "konular" ise id numarası verilen konuyu gosterelim. Değilse işlem yaptırmayalım.





İşte bu kadar basit. Siz strDizi(3) dizi elemanı ile gelen veriye bakarak değişik işlemler yaptırabilirsiniz.




Birde değişik dosya uzantısı icin ornek verelim.

Linkimiz http://www.vbsturk.com/konular.vbsturk?konu=20

Dosya uzantımızın vbsturk olduğunu goruyorsunuz. Siz bunun yerine .aspx yada .jsp gibi bir dosya uzantısı kullanıp ziyaretcilere web programlama da cağ atlamışsınız havası verebilirsiniz.

Oncelikle query bilgimizi alıp "/" işaretlerinden parcalayalım.





Elimize gecen dizi elemanlarını buraya yazalım ve aradığımız verinin dizinin kacıncı elemanı olduğunu gorelim.
strDizi(0) =" 404;http:"
strDizi(1) ="" // işaretinin arasında bişey olmadığı icin bu değer boş.
strDizi(2) = "www.vbsturk.com"
strDizi(3) = "konular.vbsturk?konu=20"

Gorduğunuz gibi uzerinde işlem yapacağımız değerimiz strDizi(3) dizi değişkeninde. Burada ? işaretinden sonraki kısımda ki değerleri alıp bunlara gore işlemleri bikac yolla yapabilirsiniz. InStr() ile soru işaretinin nerede olduğunu bulur. sonra = işaretini bulur, bu 2 değer arasında ki veriyi Mid ile alabilirsiniz. Yada Split ile veriyi once ? işaretinden sonrada = işaretinden parcalayabilirsiniz. Biz InStr() ve Mid() ile yapacağız.






strBolum'un cıktısı "konu" olur. Birde konunun id numarasını alalım.





Bolumun ismi ve konunun id numarası elimizde olduğuna gore yukarıdaki ornek gibi istediğiniz işlemi yaptırabilirsiniz.

Herkese kolay gelsin

Alıntıdır...
http://www.vbsturk.com
Yazan: Metin AKSU