ASP Nesnelerini tanıyalım

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
ASP nin kullanılmasında esas etken, kullanıcıdan gelen veriyi (form elemanları, cookie, url vs.) kolaylıkla alabilmemiz ve sunucuda bulunan bir bilgiyi (veritabanı, metin dosyası, xml, hatta sunucunun kendi bilgilerini tutan Active Directory) kullanıcıya bizim belirlediğimiz şartlarda gösterebilmemizdir.
Request

Request nesnesi ile kullanıcıdan gelen herhangi bir veriyi kolaylıkla alabiliriz. İki çeşit veri alma şekli yaygın olarak tercih edilmektedir. Form ve QueryString. Sadece Request("deger") yazarak her iki şekilde gelen veriyi de alabiliriz. Örnek :

ornek.asp

PHP:
<html> <head><title>Falan neyi getiriyor : <%=Request("falan")%></title></head> <body> <h1>Bu form veriyi POST metodu ile gönderir.</h1> <%If Len(Request("filan") & "")>0 Then%> <h1>Hey! daha önceden gönderilmiş değeri : <%=Request("filan")%> <%End If%> <form method="post"> <input type="text" name="filan"/> <input type="submit"/> </form> </body> </html>


Response

Response nesnesi ile sayfaya hüküm ederiz.ekrana yazı yazma durdurma tamponlama charsetler ... kullanabildigimiz kadar response neslerini bir örnekte toplayalım.


PHP:
responsenesnesi.asp


<%

response.buffer = false ' Buffer özelliği response ile oluşturulan Html Data akışının html dosya oluşturulması tamamlandıktan sonra veya her satır iletildiğinde gösterilmesi ile ilgili bir özelliktir. Default değeri "on" dur bu değeri biz false yaptık


PHP:
'response.clear



'metodu buffer (tampon) edilmiş tüm html bilgisinin silinmesi için kullanılır. Kullanımı: Response.clear şeklindedir. Fakat unutulmaması gereken nokta eğer Response.Buffer= false olarak set edilmiş ise Run-time (çalışma zamanı ) hataya neden olur. 'bu yuzden bu örnegimizde response.clear kodunun başına ' tırnak işareti koyduk


PHP:
Response.Expires=0


'Expires özelliği dakika cinsinden sayfanın browser tarafından hafızada ne kadar tutulacağı ile ilgili bilgiyi set etmek için kuyllanılır. Eğer kullanıcı aynı sayfaya Response.Expires ile belirlenen zamandan daha önce geri dönerse sayfanın hafızadaki versiyonu kullanıcıya gösterilir. '0 yaptıgımız için her yenilendiginde sunucu kodları yeniden yorumlucaktır eğer 1 yapsaydık 1 dk sonra bellekten silinecektir

PHP:
Response.ExpiresAbsolute=#01.01.2009#


ExpiresAbsolute tıpkı Expire özelliğine benzer olarak fakat belirtilen sürenin dakika değil tarih veya saat olacak şekilde set edilmesi suretiyle sayfanın geçerlilik süresinin belirlenmesi için kullanılır. bu kodda yıl başından sonra sayfa bellekten silinecektir(tabii o gune kadar browser kapatılmassa


PHP:
response.end


'bu kodu yazdıgımızda bu yazının usttundeki herkodu yorumlucak ama alttaki kodları browser yorumlamayacaktır. 'bir nevi tamponlamadır

PHP:
response.redirect "sayfa.asp"



'redirect i gördügü an yorumlayacı sayfa.asp ye gidicektir buda sayfanın nerdeyse görünmemsine neden olucaktır 'yani basit olarak yönelndirmedir 'fakat response.end kullandıgımızdan işlemeyecektir


response.write "response.write nesnesini kullandık"


'response nesneleri bu kadar değil execute ve transver charset fln da var fakat onları daha sonra yazacagım


%>

Dizi Değişkenler (Array fonksiyonu)

VBScript dili kullanılmaya hazır bir çok fonksiyon içerir. Bunlardan biri olan Array ile, kolayca dizi değişken oluşturabiliriz. Diyelim ki, Aylar(12) dizi-değişkenini yıl içerisindeki ayların adları ile doldurarak oluşturmak istiyoruz:


PHP:
<% Dim Aylar = Array (“Ocak” , “şubat” , “Mart” , “Nisan” , “Mayıs” , “Haziran”, “Temmuz” , “Ağustos” , “Eylül” , “Ekim” , “Kasım” , “Aralık” ) %>



şeklindeki satırlar ile hem dizi-değişkeni oluşturabiliriz; hem de değerlerini atayabiliriz. Bu yapıda oluşturduğumuz dizi değişkenin üyelerini daha sonra sıra numaraları ile çağırabilirsiniz. Örneğin:


PHP:
<%=Aylar(3)%>


bize Nisan’ı verir. Neden? Çünkü hayatlarının büyük bölümünü bilgisayar başında ve havasız ortamlarda geçiren, çoğunlukla asosyal kişiler olan dil tasarımcıları, sayı saymaya biz normal insanlar gibi 1’den değil 0’dan başlarlar. Dolayısıyla, Aylar dizi-değişkeni Aylar(0)’dan başlar!

Burada aklınıza şu soru gelebilir: Dizi değişken oluşturacağımıza, neden “ogrenci1”, “ogrenci2”, “ogrenci3” ya da “Gunler1”, “Gunler2” diye değişkenler oluşturmuyoruz ve bunlara değerler atamıyoruz? Her şeyden önemlisi dizi değişkenlerde bir değişkene numarasıyla atıfta bulunabilirsiniz. Numara yerine bir başka değişkeni kullanabilirsiniz. Örneğin, OgrenciNo değişkeninizin değeri 12 ise


PHP:
<% .... If Ogrenciler(OgrenciNo) = “Birol” ... %>


şeklinde bir döngü ile aradığınız öğrencinin Selim olup olmadığını sınayabiliriz. Başka programlama dillerine özellikle Visual Basic’e âşinâ olanların aklına şöyle bir soru gelebilir: “VBScript’te değişkenin metin mi, sayı mı olduğunu ayırt etmiyor muyuz?” Başka programlama dillerinde bir değişkenin değeri harf ve rakamlardan oluşuyorsa, yani matematik işlem yapmaya elverişli değilse bunlara String (Alfanümerik, karakter değerler, dizgi) denir. Programlama dillerinde bir de matematik işlem yapmaya elverişli değişken türü vardır: Sayı (Number). VBScript, bir değişkene alfanümerik (karakter, metin) olarak atadığınız değeri çift tırnak içine almanızı ister. Sözgelimi Kediler(12) değişkeni için Minnoş değerini atamak istiyorsunuz. Minnoş kelimesini çift tırnak içine almak zorundasınız. Sayı olarak kullanacağınız değerleri ise tırnak içine almazsınız. (Sayı olarak kullanacağınız değerlerin sadece rakam olabileceğini hepimiz biliyoruz!) Fakat, işleri karıştıran nokta, VBScript açısından değişken türü diye bir şey olmamasıdır. Visual Basic, küçültülüp script dili haline getirilirken, değişken türü özelliği alınmayınca, ortaya işleri karıştıran (belki de oldukça kolaylaştıran) böyle bir durum çıkmış bulunuyor. Karışıklık, çift tırnak içinde verdiğiniz bir değeri matematik işlemde kullanmaya kalktığınızda karşınıza çıkabilir. Rakam olmayan bir karakter dizisini bir değişkene tırnaksız olarak atadığınızda VBScript “tanımsız değişken” vermeye kalktığınızı söyleyerek duracaktır. VBScript’in bu eksikliğini gidermek için bazı ASP programcıları değişken adlarının önüne karakter dizileri için “str” harflerini koyarlar: strAy, strOgrenciler, strMailAdresi gibi. İsterseniz, VBScript’in karakter-dizisi ve sayı değişkenleri nasıl ayırt ettiğini veya etmediğini bir kaç örnekle görelim. şu kodu yazarak, çalıştıralım:

PHP:
<% Option Explicit %> <HTML> <% Dim Degisken(2), Toplam Degisken(1) = "Mustafa" Degisken(2) = "Doğan" Toplam = degisken(1) + Degisken(2) %> <% =Toplam %> </HTML>


Sonuç: “MustafaDoğan” değil mi? (Arada boşluk olmamasını şimdilik önemsemeyelim.) Peki; şimdi Degisken(1) değeri olarak tırnak içine alarak 5, Degisken(2) değeri olarak yine tırnak içinde 10 yazın. Programı tekrar çalıştırın. Haydaa! Sonuç 510? Peki, tırnakları kaldırın. Sonuç? 15. Ne o? Bu dili tasarlayanların matematik bilmediklerini mi sandınız
smile.gif
Bu durum VBScript’in matematik bilgisinin kıtlığından değil, tırnak içindeki değerlerin, VBScript ayrım yapmıyor olsa bile, karakter dizgisi (string) iken toplama işleminde art arda eklenmesinden (concatenate) kaynaklanıyor. Tırnakları kaldırdığınızda, VBScript bu değerlerin sayı olduğunu anladı ve doğru işlemi, yani toplama işlemini yaptı. şimdi VBScript’in değişkenleri ele alış tarzını daha iyi kavramak için Degisken(1) değeri olarak tırnak işareti koymadan kendi adınızı, Degisken(2) değeri olarak da soyadınızı yazın ve programı çalıştırın. Ne sonuç aldınız? VBScript’in kullandığı tek tür değişkene variant denir. Variant, karakter-dizini (String) de olabilir, sayı (Number) da. Fakat bir variant’ın içindeki değer, veri olarak nitelendiğinde şu türlerden birine girer:

Boolean Değişkenin değeri ya True (doğru) ya da False (yanlış) olur; True’nun değeri –1, False’un değeri ise 0’dır. Byte 0 ile 255 arasında bir sayısal değer olabilir. Double Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 4.9E-324 ile 1.8E308 arasında, negatif sayılarda -4.9E-324 ile -1.8E308 arasında bir değer alabilir. Date/Time Önceden belirlenmiş biçimlerde tarih ve zaman bilgisi içerir. Empty Tanımlanmış ancak henüz değer atanmamış (boş) değişken türüdür. Error Programın hata mesajlarını ve hata değerlerini tutar. Integer Noktalık bölüm içermeyen tamsayı verilerdir; değeri -32.768 ile +32.767 arasında olabilir. Long Noktalık bölüm içermeyen tamsayı verilerdir; değeri -2.147.483.648 ile 2.147.483.648 arasında olabilir. Null İçinde veri bulunmamak üzere tanımlanmış değişkenlerdir. Object Windows OLE Nesnelerini tutmak üzere tanımlanmış değişkenlerdir. Single Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 1.4E-45 ile 3.4E38 arasında, negatif sayılarda –1.4E-45 ile -3.4E38 arasında bir değer alabilir. String Alfanumerik veri tutan değişkenlerin değeridir

Değişkenlere nispet, Değişmeyenler

Diyelim ki, bütün kodunuz boyunca kullanacağınız bir değişmez değeriniz var. Bu tip sabit bir değer. Bütün ASP sayfası boyunca (hatta isterseniz, bütün site, yani uygulama boyunca) değişmeden kalır. Bu değerleri Const (constant, sabit kelimesinden türetilme) komutuyla belirtiriz:


PHP:
Const dolarBirimFiyat = 677000 Const KarsilamaMetni = “WELCOME...Web sitemize hoş geldiniz.” Const UreticiFirma = “Sony Electronic”


VBScript’te İşlemciler (Operatörler)

Bilgisayar operatörü ile program operatörü arasında fazla bir fark yoktur. Her ikisi de verdiğiniz değerleri ya karşılaştırır bir sonuç bulurlar; ya da bu değerlerle aritmetik işler yapar ve bir sonuç ortaya çıkartırlar. Bilgisayar operatörü daha sonra bu iş için sizden para ister; program operatörü istemez. (Bilgisayarı edinebilmek için Türkiye şartlarında yeterince harcama yapıyorsunuz zaten!) VBScript’in operatörleri ve yaptıkları işler şöyle sıralanır:


PHP:
Operatör: İşlev: Sınıfı:  + Toplama Aritmetik - Çıkartma  Çarpma


/ Bölme ^ Üssünü alma \ Tamsayı bölme Mod Modüler aritmetik = Bir değişkenin diğerine eşit olduğunu sınar Karşılaştırma <> Bir değişkenin diğerine eşit olmadığını sınar >and< Bir değişkenin diğerinden büyük veya küçük olduğunu sınar (and kelimesi var) >= and <= Bir değişkenin diğerinden büyük veya eşit, veya küçük veya eşit olduğunu sınar (and kelimesi var) Is Bir ifadedeki iki referansın aynı Nesne’ye yapılıp yapılmadığını sınar And Bir veya daha fazla değişkeni test olarak karşılaştırır Mantıksal Or Bir işlemin devamı için hangi koşulun oluşması gerektiğini sınar Not Bir ifadeyi negatif hale getirir XoR Sadece bir şartın doğru olup olmadığını sınar Eqv İki değişkenin eşitliğini sınar Imp İki ifadede mantıksal implikasyon işlemi yapar.

VBScript ile yazacağımız ASP sayfalarında bu işlemcileri beklediğimiz sonucu verebilmesi için kullanım sıraları önemlidir. Bunu bir örnekle açıklayalım: 100’den 6’yı çıkarmak ve sonucu 2’ye bölmek istiyorsunuz; sonuç 47 olacaktır. Yani, 100-6/2; değil mi? Bu işlemin VBScript’teki sonucu 97 olacaktır. Çünkü, VBScript önce 6’yı 2’ye bölecek ve elde ettiği sonucu 100’den çıkartacaktır. VBScript’te, aritmetik işlemlerin yapılma sırası şöyledir:


PHP:
Operatör: İşlev: Öncelik: + Toplama 3 - Çıkartma 3  Çarpma 2  / Bölme 2 ^ Üssünü alma 1


VBScript ile hesap işlemi yaparken, aritmetik işlem sırasını karıştırarak hatalı sonuç almamak için sık sık parantez kullanmak yerinde olur. Yukarıdaki örnek şöyle yazılabilirdi: (100-6)/2. Tabiî amacınız 100’ü 6/2’ye bölmek ise bu işlemi şöyle yazmalısınız: 100-(6/2).
 
Benzer konular Forum Tarih
Ahbap PHP ve ASP 1 444
Ahbap PHP ve ASP 1 297
Ahbap PHP ve ASP 1 287
Ahbap PHP ve ASP 1 2K
Ahbap PHP ve ASP 1 282

Benzer konular

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş