1 Mart 2012 Perşembe







BÖLÜM I





GİRİŞ VE AMAÇ





I.1 GİRİŞ
Türkiye Internet ile Nisan 1993’de tanışmıştır. İlk kez ODTÜ bağlantısı gerçekleşmiştir. Birçok komu kuruluşları da ODTÜ üzerinden internet erişimine sahip olmuşlardır. Sonraları, internet servisi alan özel kuruluşların sayısı da sürekli artmıştır. Şu an için (2007 sonları itibarıyla); pek çok büyük şirket, değişik Internet servis sağlayıcıları üzerinden internet servisi almaktadır. Kesin sayıyı ve isimleri saptamak oldukça zordur [1].
Bilgi paylaşımı için global bir yapı sağlayan Internet, öğrenmeye de farklı boyutlar kazandırmıştır. Bilgisayarların artması ve internetin her eve gelmesiyle birlikte web üzerinden eğitim gittikçe yaygınlaşmaktadır. İnsanlar bilgiye kısa sürede ulaşmak istemektedir. Bilginin herkese açık olması ve istenildiği zaman elde edilmesi öğrenmeyi daha kolay hale getirmiştir.

Zaman kavramının öneminin giderek arttığı dünyamızda, hemen her türlü bilgi paylaşımının internet üzerinden yapılması gerek hız kazanmak gerekse bilgiyi zaman ve yer sınırlamalarını ortadan kaldırarak kullanmak açısından büyük bir adım olmuştur. Profesyonel ya da özel amaçlı bilgi paylaşımının yanı sıra internet, yeni uygulama alanlarının gelişmesi sayesinde hemen her konuda ihtiyaçlarımızı karşılar hale gelmiştir.  Uzaktan eğitim ve e-Eğitim bunlara örnektir[2].

Uzaktan Eğitim, geleneksel öğrenme-öğretme yöntemlerindeki sınırlılıklar nedeniyle sınıf içi etkinliklerin yürütülme olanağı bulunmadığı durumlarda eğitim çalışmalarını planlayanlar ve uygulayanlar ile öğrenenler arasında iletişim ve etkileşimin özel olarak hazırlanmış öğretim üniteleri ve çeşitli ortamlar yoluyla belli bir merkezden sağlandığı bir öğretim yöntemidir. Uzaktan eğitimi şu şekilde tanımlayabiliriz; Farklı mekânlardaki öğrenci, öğretmen ve öğretim materyallerinin iletişim teknolojileri aracılığıyla bir araya getirildiği kurumsal bir eğitim faaliyetidir.

Uzaktan eğitimin yeni bir versiyonu olan e-Eğitim ise, İnternet teknolojileri aracılığı ile öğreten ve katılımcının aynı zamanda ve aynı ortamda bulunmalarına gerek kalmadan gerçekleştirilen eğitim faaliyetlerinin tümünü kapsar. E-Öğrenme süreci boyunca katılımcılar sunulan ders içeriklerine istedikleri zaman ulaşabildikleri gibi, e-mail veya yorum yapma gibi etkileşim araçları ile kendi aralarında veya eğitim verenler ile iletişim kurabilirler.

e-Eğitim sitelerine talep insanlar tarafından gittikçe artmaktadır. Bu siteler sayesinde öğrenme daha kolaylaşmıştır. Birçok konuya ilişkin e-Eğitim sitesi bulunmaktadır.

   I.2 AMAÇ

Bu çalışmada, ASP(Active Server Page) programlama dilinin web tabanlı eğitimi yapılmıştır. Bir e-Eğitim olan asp programlama dilinin web tabanlı eğitimi, kullanıcıların asp’nin nasıl çalıştığını;  dersler,  animasyonlar, makaleler ve testlerle öğretilmesine yardımcı olunmuştur. Asp ile ilgili kaynaklar açıklayıcı, öğretici yani bir e-Eğitim sitesi tarzında olmadıkları için bu siteye ihtiyaç duyulmuştur.

 Dersler bölümünde asp nesneleri 6 bölüme ayrılarak, her bir bölümde o nesneye ilişkin açıklamaya, örnek koda, testlere yer verilmiştir.  Derslerin anlatılmasında basit bir dil kullanılmıştır. Dersin daha iyi anlaşılması için; her derse ait örnek ve test bulunmaktadır. Ders bittikten sonra kullanıcı kendini sınaması için testlere bölümünden o konuya ilişkin testi çözebilir.

Testler bölümünde sorular derslerle birebir ilişkilidir. Kullanıcı dersleri çalıştıktan sonra testler bölümündeki soruları çözmekte pek fazla zorluk çekmeyeceklerdir. Sorular kolaydan zora doğru hazırlanmıştır.  Her asp nesnesine ait bir test bulunmaktadır.

Asp çalışmasını görsel şekilde anlatılması animasyonlar kısmında yer verilmiştir. Kullanıcı asp’nin sunucu taraflı çalışma mantığını daha iyi anlamasına yardımcı olur.

 

 

 

 

 

 

 

 






BÖLÜM II





WEB SAYFASININ TASARIMI ve ASP





II.1 GİRİŞ

Bu çalışmada oluşturulan web sitesinde ilk aşamada sayfanın içeriği belirlenmiştir. Belirlenen içeriğe bağlı olarak photoshop resim editöründe sitenin tasarımı yapılmış tır. Tasarlanan sayfa bir sonraki çalışmada html formatına çevrilmiştir. Son aşamada, sayfanın tabloları bir kâğıt üzerine çizilerek, kod yazma aşamasına geçilmiştir.

II–2 SAYFANIN İÇERİGİNİN BELİRLENMESİ

            Web sitenizi HTML (Hyper Text Markup Language) komutlarıyla biçimlendirmeden önce, ilk olarak sitenin içeriğinin belirlenmesi gerekir. Oluşturulacak site hangi konuyu kapsıyor ise belli bir düzen içinde yazılmalıdır. Asp ile web tabanlı eğitim sitesindeki içerik kısmı tablo II.1 de verilmiştir. Belirlenecek içeriğin önemli noktalarını belirten kısa bir liste oluşturulur. Bu liste, web sitesinde oluşturulacak olan yapıyı belirlemede yardımcı olur.

Tablo II.1  Asp web tabanlı eğitim sitesinin içeriği

Asp Dersleri
Asp Testleri
Asp Animasyonları
Asp Makaleleri
Asp Uygulamaları

II-3 SAYFANIN TASARLANMASI

            İçerik belirlendikten sonra içeriğe uygun bir site tasarımı yapılmalıdır. Sitenin tasarımına geçilmeden önce hangi kitlenin siteyle ilgileneceğini düşünülmelidir. Sitenizin tasarımını hedef guruba göre düzenlenmelidir.

Asp ile web programcılığı site tasarımında photoshop resim editörü kullanılmıştır. Photoshop’ ta çalışırken katmanlı bir yapı izlenir. Buda yapılacak herhangi bir değişiklikte diğer katmanların etkilenmesi önlenmiş olacaktır. Sitenin genel görünümü Şekil II.1 de görülmektedir.


Şekil II.1 photoshop’da sitenin tasarlanmış son hali


II–4 SAYFANIN DREAMWEARLA HTML FORMATINA DÖNÜŞTÜLMESİ

Sitenin genel görünümü hazırlandıktan sonra, html yapısına çevrilmesi gerekir.  Photoshop da hazırlanan resimler parçalara bölünerek html editörü yardımıyla html formatına çevrilir.  Html formatına çevrilirken css(Cascading Style Sheets) kullanılmıştır.

Css, Internet sayfaları için genel geçer şablonlar hazırlama olanağı verdiği gibi, bağımsız olarak harflerin stilini; yani renk, yazı tipi, büyüklük gibi özelliklerini değiştirmek için de kullanılabilir. Bu tekniğin en önemli özelliği kullanımındaki esnekliktir. Bir web sayfası içerisinde birbiriyle uyumlu birkaç renk ve birkaç yazı tip kullanılır ve bunları her sayfada ayrı ayrı tekrar belirtmek yerine CSS yardımıyla bir sefer tanımlayıp bütün web sayfalarında ortak olarak kullanılabilir. Bu şekilde, sayfaların hafızadaki boyutu epey küçüldüğü gibi, güncelleme yapmak da kolaylaşır.
CSS kodları HTML kodlarının içine yazılırlar. Türüne göre <BODY> veya <HEAD> bölümlerinde yer alabilirler. Bunların dışında harici CSS dosyaları oluşturulup bunlar gerektiğinde HTML belgesi içerisinde çağırılabilirler. Asp ile web tabanlı eğitimde Css dışarıdan harici bir dosya olarak uygulanmıştır.
Sitenin tasarımı yapılırken tablolar yerine div tağları kullanılmıştır. Sitede kullanılan css ile div tağları konumları belirlenmiştir. Böylece sayfanın html biçimi oluşturulmuştur.

II-5 TABLOLARIN OLUŞTURULMASI

Web sitesinin html formatı oluşturulduktan sonra sitede yapılmak istenilen olaylara, özelliklere göre tablolar oluşturulur. Bir sonraki aşamada,  kod yazmaya başlanır. Bu web sitesi oluşturulurken aşağıdaki 3 ana bölüm dikkate alınmıştır. Bunlar;

·         Mail aktivasyonlu üye girişi
·         Üyelere özel sayfalar
·         Admin Bölümü

bölümleridir.

II.5.1 Mail Aktivasyonlu Üye Girişi

Her sitenin kendine özel kullanıcılarına ait özel fonksiyonları vardır. Bu özelliklerden yararlanmak isteyen kullanıcılar, siteye üye olmaları gerekir. Üyelik işlemlerinde, kullanıcılara bir takım sorular sorulur. Bu sorulan soruların belli bir standardı yoktur. Bu çalışmada ad, soyad, meslek, kullanıcı Adı, mail, şifre ilgili bilgilerin istenmesi yeterli görülmüştür.

Kullanıcıdan istenilecek bilgiler alındıktan sonra, bu bilgiler veritabanına yazılır ve üyelik işlemi için aktivasyon maili beklenir. Mail geldikten sonra kullanıcı siteye üye olur. Şekil II.2 de bu işlemin nasıl gerçekleştiği akış şeması olarak verilmiştir.


Şekil II.2 Kullanıcı bilgilerinin veritabanına yazılması ve mail gönderilmesi

            Kullanıcıdan alınan bilgilerin hepsi kontrol edildikten sonra, bilgiler request(istek) nesnesiyle alınır. Birinci ve ikinci şifre birbirine eşit ise bilgiler üyeler adlı tabloya yazılır ve aktivasyon numarası kullanıcının mail adresine gönderilir. Şekil II.3 üyelik bilgilerinin tabloya yazmasına ilişkin kod parçacığı verilmiştir.

<%
session("xad")=request.QueryString("ad")
session("xsoyad")=request.QueryString("soyad")
session("xmail")=request.QueryString("mail")
session("xkullanici_adi")=request.QueryString("kullanici_adi")

if sifre=sifre1 then

            set rs=server.CreateObject("Adodb.Recordset")
            Sorgu="select * from uyeler"
            rs.open Sorgu,bag,1,3
            rs.addnew
            rs.fields("kullanici_adi")=kullanici_adi
            rs.fields("sifre")=sifre
            rs.fields("ad")=ad
            rs.fields("soyad")=soyad
            rs.fields("meslek")=meslek
            rs.fields("mail")=mail
            rs.fields("onay_kodu")=         tarih & kodu
            rs.fields ("onay")=false
            rs.update
End if
%>

Şekil II.3 üyelik bilgilerinin tabloya yazılmasına ilişkin kodlar

Kullanıcıya mail geldikten sonra onaylama(aktivasyon) işlemi şekil II.4 de akış şeması gösterilmiştir.


Şekil II.4 Kullanıcı gönderilen mail ile aktivasyon işlemi

Üyeler tablosunda id sütunu kullanılarak her kullanıcıya ayrı bir numara verilmesi sağlanmıştır. Onay sütununda, kullanıcıya gönderilen maildeki linke tıklanmasıyla onay_kodu aranır. Bulunduğu zaman o sütundaki, onay kısmı true yapılarak kullanıcı ana sayfaya yönlendirilir. Tablo II.4 ‘de uyeler tablosu gösterilmektedir.

Tablo II-4 uyeler tablosu



II.5.2 Üyelere Özel sayfalar

Bu projede üyelere özel sayfaların yapımında, session(oturum) nesnesi kullanılmıştır. Kullanıcı sunucuya bağlandığı zaman asp’de bir oturum açılmaktadır. Session’lar oluşturularak oturum kapanana kadar ziyaretçinin bütün yaptıkları izlenebilir.  Bütün sayfalarda geçerli olabilecek değişkenleri session nesnesiyle oluşturulur. Session nesnesinin çalışma prensibi bilgileri her  kullanıcıya özel olarak saklanmaktadır. Sunucu her kullanıcı için ayrı bir session oluşturur.

 Üyelere özel sayfaların yapımında, özel bir oturum nesnesi oluşturularak, kullanıcı siteye giriş yaptığı zaman bu oturum nesnesini belirli bir değer atanarak, üyelerin siteye giriş yaptığı anlaşılır. Sadece üyelere gösterilen sayfalarda, bu oluşturulan oturum nesnesi bir if-else bloğunda sorgulandıktan sonra sayfa gösterilir.

Kullanıcı sayfaya giriş yaptığı zaman, oturum nesnesinin aktif edilir. Bu çalışmada oturum nesnesi girdi olarak tanımlanmıştır. Girdi değeri 1 ise üyelere özel sayfalar gösterilmektedir.  Şekil II.5 kullanıcılara özel sayfaların gösterilmesine ilişkin işlemler, akış şeması olarak gösterilmiştir.
Şekil II.5 üyelere özel sayfaların gösterilmesine ilişkin akış şeması

Kullanıcı adı ve şifresini girdikten sonra veritabanında kullanıcı bilgileri aranmaktadır. Eğer bu bilgiler veri tabanında bulunamazsa, “Böyle  bir  kullanıcı yoktur” mesajı verilmektedir.  Veritabanında bilgiler bulunursa, girdi değeri 1 yapılarak üyelere özel sayfalar gösterilmesine izin verilmektedir. Şekil II.6 kullanıcılara özel sayfalara ilişkin kod parçacığı verilmiştir.

if rs.eof or rs.bof then
      response.Write("Böyle bir kullanıcı yoktur")
      response.End()
end if
session("kullanici_adi")=ad
session("girdi")=1

Şekil II.6 üyelere özel sayfaların gösterilmesine ilişkin kod parçacığı

II.5.3 Admin Bölümü

            Admin siteyi yöneten, sitedeki bütün verilerin eklenmesi ile ilgilenen kişidir. Bu çalışmada sitedeki bütün veriler admin tarafından onaylandıktan sonra gösterilmektedir.
           
            Sitede admin için özel bir bölüm oluşturulmuştur. Admin, kullanıcı girişinden admine özel kullanıcı adı ve şifreyi girdikten sonra, admin için oluşturulmuş özel bölüme girerek, bu bölümde;

·         Ders işlemleri
·         Test işlemleri
·         Animasyon işlemleri
·         Makale işlemleri
·         Uygulama işlemleri

gibi işlemleri yapılmaktadır.
     
      Bu çalışmada admin bölümüne ilişkin kod yazma aşamasına geçilmeden önce, bütün veritabanı bir kâğıt üzerine oluşturulmuştur. Bir sonraki aşamada ise, veritabanları yaratılarak uygulama kısmına geçilmiştir.

II.5.3.1 Ders İşlemleri

            Ders ekleme veritabanı oluşturulurken, birinci aşamada ders ekleme tablosu oluşturularak, bu tabloda dersktgrId, baslik bilgileri saklanmaktadır. Tablo II.5 dersler tablosu gösterilmiştir.

Tablo II.5 ders başlıklarının tutulduğu tablo yapısı


            Ders ekleme işlemi yapıldıktan sonra, o derse ait konuların eklenmesi için, ayrı bir veritabanı oluşturulmuştur. Tablo II.6 konular tablosu gösterilmiştir. AltKtgrId bilgisinin alınmasındaki amaç, konular ile dersler arasında bir ilişkilendirme yapılarak, hangi derse hangi konu eklendiğinin öğrenilebilmesidir. Tablo II.6 ders ekleme tablosu gösterilmiştir.





Tablo II.6 konu ekleme tablosu gösterilmiştir.




Admin ders işlemleri bölümünde ders eklenirken;

·         Ders başlığı eklenir, ders sıra numarası verir ve ders ekle düğmesine basılır.
·         Bir sonraki aşamada o derse ilişkin konular eklenirken;  konuya başlık, yazar ismi ve ders sırası verilerek konu ekleme

işlemleri yapılır.

 Herhangi bir dersin silinmesi istenildiği zaman daha önceden derse verilen sırayı açılır kutudan seçerek, istenilen ders silinebilir. Bir derse ait herhangi bir konu silinmek istenildiği zaman, konunun ismi seçilerek konu silme işlemi yapılır. Tablo göster bölümünde, tabloya eklenen dersler ve konular belli bir düzen içinde gösterilir. Böylece admin dersleri ve konuları eklerken sırasını takip edebilir. Şekil II.7 ders ekleme paneli gösterilmiştir.


Şekil II.7 ders ekleme paneli

Kullanıcılar ana sayfadaki menüden, dersler bölümüne girdikleri zaman, ders başlığı ve o derse ilişkin konular gösterilmektedir. Konuların gösterilmesinde AltKtgrId ve dersktgId değerlerinin birbirine eşit olma şartı vardır. Şekil II.8 dersler sayfasının gösterimine ilişkin kod parçacığı verilmiştir.



<%     
      do while not dersler.eof
          set DersIcerik=server.CreateObject("adodb.recordset")
          sql1="select* from DersIcerik where AltKtgrId="&dersler("dersktgId")&""
          DersIcerik.open sql1,bag,1,3
%>
<tr class="bas">
<td align="left"><img src="/site/image/orange_arrow.gif" width="12" height="12" />
<%response.Write(dersler("baslik")&"<br>")%></td></tr>
<%do while  not DersIcerik.eof%>
<tr >
    <td align="left" valign="baseline" class="ic">
     <a href="ders_goster.asp?id=<%response.Write(DersIcerik("id"))%>">
     <%response.Write(DersIcerik("Baslik")&"<br>")%></a></td>
</tr>
 <%
 DersIcerik.movenext
 loop
DersIcerik.close:set DersIcerik=nothing
 dersler.movenext
loop
%>

Şekil II.8 dersler sayfasına ilişkin kod parçacığı

II.5.3.2 Test İşlemleri
           
Test ekleme veritabanı yapısı dersler ekleme bölümündeki veritabanı ile benzerlik göstermektedir. Birinci aşamada test ekleme tablosu oluşturularak, bu tabloda ktgr_id, test_adi bilgileri saklanmaktadır. Ktgr_id tablo bilgisi, o testin hangi dersle ilgili olduğu bilgisi saklanmaktadır. Tablo II.7 veritabanı yapısı gösterilmiştir.

Tablo II.7  test ad ekleme tablosu



Test adı ekleme işlemi yapıldıktan sonra, o testte ait soruların bulunduğu ikinci bir veritabanı oluşturulmuştur. Dktgr_id bilgisinin alınarak, derslerle ile testler arasında ilişkilendirme yapılmıştır. Tablo II.8’de test sorularının bulunduğu tablosu gösterilmiştir.


Tablo II.8 test sorularının bulunduğu tablo



Admin test işlemleri bölümünde testler eklerken;

·         Test başlığı eklenir ve test ders numarası verir, test ad ekle düğmesine basılır.
·         Teste ilişkin konular eklenirken;  soru metni, soru şıkları, doğru cevap girilerek, test ekle düğmesine basılarak

işlemler tamamlanır. Girilen test, teste ait sorular, test başlığı test ekleme panelinden silinebilir. Şekil II.9 test işlemleri paneli gösterilmiştir.


Şekil II.9 test işlemleri paneli

Üyeler testler bölümüne girdikleri zaman, test başlıkları sıralı bir şekilde gösterilmektedir. Test adlarının bulunduğu veritabanındaki bilgiler bu sayfada sıralanmaktadır. Şekil II.10 kod parçacığı verilmiştir.

<%do while not rs.eof %>
<tr>
<td class="test_sira"><%=i%> )<a href="test_goster.asp?ders_id=<%=rs("ktgr_id")%>&gelen=123"><%=rs("test_adi")%></a></td>
 </tr>
 <%i=i+1%>
 <%rs.movenext:loop%>
 <%rs.close:set rs=nothing%>
<%end if%>

Şekil II.10 testler sayfasına ilişkin kod parçacığı

II.5.3.3 Animasyon işlemleri

Animasyon ekleme veritabanı kısmının tasarımında sadece bir tane tablo kullanılmıştır. Bu tabloda animasyonun hangi ders’e ait olduğu, adı, açıklama gibi bilgileri alınmıştır. Tablo II.9 tablo yapısı gösterilmiştir.

Tablo II.9 animasyon ekleme veritabanı



Admin animasyon işlemleri bölümünde animasyonlar eklerken;

·         İlk önce sayfaya eklenecek animasyon, sitenin bulunduğu yere upload edilir.
·         Upload işleminden sonra, ders id, açıklama ve flash açıklama bölümünden upload edilen flash uygulaması seçilrek veritabanına yazma
işlemi gerçekleştirilir. Şekil II.11 animasyon işlem paneli gösterilmiştir.


Şekil II.11 animasyon işlem paneli

Üyeler, animasyonlar bölümüne girdikleri zaman, animasyon başlıkları sıralı bir şekilde gösterilmiştir. Animasyon tablosundaki, adlar gösterilmiştir. Buna ilişkin Şekil II.12 kod parçacığı verilmiştir.


<%do while  not rs.eof%>
 <tr >
<td align="center" ><img src="/site/image/onlyorange_arrow.gif" width="12" height="12" /><a href="animasyon_goster.asp?id=<%response.Write(rs("dersId"))%>"></a>             <a href="animasyon_goster.asp?id=<%response.Write(rs("dersId"))%>">
<%response.Write(rs("name")&"<br>")%> </a></td>
</tr>
 <%rs.movenext:loop%>
Şekil II.12 testler sayfasına ilişkin kod parçacığı


II.5.3.4 Makale İşlemleri

Makale ekleme veritabanı tablosu hangi tarih, detay, yazan, toplam kişi, açıklama gibi bilgileri makaleyi ekleyen kişiden alınmıştır. Tablo II.10 makale ekleme tablosunun yapısı gösterilmiştir.

Tablo II.10 makale bilgilerinin bulunduğu tablo


Admin makale işlemleri bölümünde makale eklenirken; makaleye başlık, yazar ismi, mail ya da web adresi ve açıklama bilgilileri girilerek makale ekle butonuna basılır. Üyelerden gelen makaleler, makalelere yapılan yorumlar makale ekleme panelinde izin verildikten sonra sitede yayınlanır.  Şekil II.13 makale işlemleri paneli gösterilmiştir.

Şekil II.13 makale işlemleri paneli

Kullanıcılar sitede makaleler bölümüne girdikleri zaman makaleler, isim ve kısa bir açıklama ile gösterilmektedir. Buna ilişkin Şekil II.14  kod parçacığı verilmiştir.

<td width="26%" class="tarih">       <%=rs("id")%>)tarih:<%=rs("tarih")%>&nbsp;</td>
<td width="74%" class="x"><%=rs("makale_adi")%></td>
Şekil II.14 makaleler sayfasına ilişkin kod parçacığı









BÖLÜM III






ASP PROĞRAMLAMA DILININ WEB
               TABANLI EĞITIMI





III.1 ASP NEDİR VE NASIL ÇALIŞIR
            ASP dinamik web sayfaları hazırlamak için Microsoft tarafından geliştirilmiş bir teknik, uygulanan bir teknolojidir. Asp kodları yazmak için script dillerinden biri seçilerek (vbscript, jscript vb) oluşturulan sayfaların (.asp) bir uygulama programı vasıtası ile yorumlanması ve HTML çıktısı üretmesi ile sonuçlanan bir işlemler bütünüdür.
İlk versiyonu 1996 yılında Microsoft tarafından IIS 3.0 ( Internet Information Server ) üzerinde çalışacak şekilde dizayn edildi, 1998 yılında ASP 2.0 IIS 4.0 üzerinde çalışıyor ve daha fazla özellik içeriyordu.
Kullanıcı herhangi bir browser vasıtası ile ilgili siteye bağlandığında yani kullanıcının browser hanesine ilgili adresi yazması ve enter'a basması ile gerçekleşir, ulaşmak istediği dosya istekte bulunan ve bu hizmeti sunan uygulama programı tarafından (web server) kullanıcıya gönderilir. Ancak bu durum html ve htm uzantılı dosyalar için böyle iken kullanıcı. asp uzantılı bir dosyaya istekte bulunduğunda uygulama yazılımı ( web server) istenilen bu dosyayı önce yorumlar ve bu işlemin sonucunda üretilen standarda html kodları kullanıcıya gönderilir. [2]
Asp'nin gücü iki temel noktaya dayanır.
  • Sonuç olarak kullanıcıya iletilecek html dosyası kullanıcı istekte bulunana kadar oluşturulmaz.
  • Kullanılan browser tipi yazılan asp dosyaları için önemli değildir. Çünkü yorumlanan asp dosyaları standart html çıktı üretirler
Şekil III.1’de asp kodlarının sunucuda işlenerek, çıktı olarak html kod üretimi gösterilmiştir.

 Şekil III.1 asp kodları sunucuda işlenerek çıktı olarak html kod gönderimi

HTML kodları ziyaretçinin bilgisayarında çalıştırılır; istemci Browser, sizin URL hanesine adını yazdığınız HTML dosyasını yine adresteki sunucu Web Server'dan ister. Web Server da bu dosyayı bulur ve içinde kayıtlı resim ve diğer unsurlarla birlikte istek sahibine gönderir. Dinamik sayfalarda, Server’ın sadece bir dosyayı göndermesini değil, bu dosyanın içinde kayıtlı komutları icra etmesi istenir. Bunu yapmanın bir yolu CGI programlarıdır. Bir diğer yolu ise ASP'dir. Web Server, kendisinden bir ASP belgesi talep edildiğinde önce bu sayfa ASP.DLL programına gönderilir. ASP.DLL, bir .asp dosyası geldiği zaman, global.asa'nin çalışıp çalışmadığına bakılır. global.asa dosyaları, ASP dosyaları gibi bir düz yazı dosyasıdır ve asp programlarının çalışma koşullarını düzenleyen kuralları içerir. Asp dosyaları hem HTML kodları içerir, hem de içinde bir script diliyle yazılmış kodlar vardır. Asp.dll, gelen .asp dosyasında hangi Script dilinin kullanıldığına bakar ve  bu script dilini yorumlayacak programı çalıştırır; bu program tarafından  Script yorumlanır ve icra edilecek komutları icra edilir. [3]
ASP.DLL, .asp dosyasını satır satır okur ve dosyadaki asp kodlarını icra edilir.  HTML bölümleri ile birleştirilip sonuçta sunucuya saf ve temiz bir HTML sayfası gönderilir. Bu sayfanın içinde bir satır bile asp kodu bulunmaz. Şekil III.2’de asp’nin çalışma ilkesi gösterilmiştir. [3]
Şekil III.2 asp’nin çalışma ilkesi
Sunucu sayfayı çalıştırırken bu taglarla karşılaştığı zaman asp kodu olduğunu anlar. Anlatılanları kısaca özetlersek, asp dosyaları,

  • Kullanıcı tarayıcısına istediği adresi yazar. (http://localhost/index.asp )
  • Tarayıcı bu isteği DNS aracılığı ile Web Server'a gönderir.
  • Web sunucusu bu adrese dahil dizinde bu sayfayı arar bulur ve Asp sayfasının içerisindeki kodları <% %> tagları arasındaki kodları bulur ve ayırır .
  • Web sunucusu bu dosyayı ASP.DLL 'e gönderir.
  • Asp dosyası içerisindeki komutlar işlenir ve bir html sayfası oluşturulur.
  • html belgesi buradan tarayıcıya gönderilir.
  • Bu kodlarda tarayıcı tarafından yorumlanarak görüntülenir.
sırası ile işlenir.

 Bilgisayarında asp kodlarını dışardan server kurmadan çalıştıramazsınız. Kodları çalıştırmanız için Windows 98 ve 95 için,  Microsoft's Personal Web Server (PWS)  veya günümüzde  IIS (Internet Information Services)  kendi bilgisayarınıza kurmanız gerekir.


III. 2 ASP SÖZDİZİMİ

ASP scriptleri <% %> tagları arasına yazılır. ASP sayfaları  ayrıca sunucu scriptleri içerir. ASP scripting dilini kendiniz seçebilirsiniz. ASP default dili Visual Basic’tir. JavaScript ve VBScript kodlarınızı yazarken çok dikkatli olmanız gerekir. Büyük küçük harf duyarlıdır. Bu projedeki asp örnek kodları Visaul Basic ile yazılmıştır. Şekil III.3 de visual basic script dili ile asp kodu yazılmıştır.


Şekil III.3 Vbscript dili ile asp yazımı

Asp kodlarını JavaScript ile yazarken language kısmında hangi dili kullanılacak ise belirtilmesi gerekir. Herhangi bir dil belirtilmesi yapılmadığı taktirde, default olarak vbscript kullanılır.

Şekil III.4 Javascript dili ile asp yazımı

III.3 ASP DEĞİŞKENLERİ

Bir dilde değişkenlerin kullanım ve tanımlama şekli dilden dile farklılık göstermektedir. Vbscript’de, asp kodlarında değişkenleri tanımlama mecburiyeti programcının seçimine bırakılmıştır. Eğer ASP kodlarının en başına,  Option  Explicit keyword’ü  kullanırsanız, kullandığınız bütün değişkenleri tanımlamanız gerekir.

Değişkenlere verilecek isimlerin anlaşılır olması programın okunulurluğunu kolaylaştırır. Ayrıca değişken tanımlamaları ile ilgili bazı kurallar mevcuttur. Bu kurallar aşağıda verilmiştir.

  • Değişke ismi bir harf ile başlamalıdır.
    Ad1,Ad2 şeklinde değişken tanımı yapılabilir fakat 1Ad veya 2Ad kullanımı yanlıştır.
  • Değişken isminde boşluk bulunamaz. Bunun yerine alt çizgi karakteri kullanılabilir.
    Adi_Soyadi doğru bir kullanım fakat Adi Soyadi gibi arasında boşluk içeren değişken tanımı yapılamaz.
  • Değişkene verilecek isim Vbscript komutlarını içeremez. Dim bir değişken ismi olamaz.
  • Değişken ismi 255 karakterden fazlada olamaz.



III.4 ASP PROSEDÜRLERI

VBScript'te programın akış kontrolünde kullanacağınız bir diğer grup araç ise örneğin Javascript veya Perl'de fonksiyon dediğimiz gruplandırılmış ve isimlendirilmiş işlem kümeleridir. Bu kümeler programın bir yerinde topluca dururlar ve programın başka bir yerinden isimleriyle çağrılırlar veya bu kümelere isimleriyle referans yapılır.
VBScript'te bu kümelenmiş kod gruplarına Prosedür (Süreç) denir  ve 2 çeşit prosedür vardır. Bir sub prosedür, diğeri ise functionlardır.

III.4.1 Sub Prosedürler

Bir program içerisinde bir kod bloğu birden fazla yerde kullanıyorsa, bunu bir alt prosedür tanımlayarak istenilen yerlerde kullanılmasını sağlanır. Böylece defalarca aynı kodları yazmaktan kurtulmuş olunur. Sub prosedürlere değer gönderilebilir. Şekil III.5  kodlar serverda işlendikten sonra, response.write ile ekrana 150 sonucu yazılır.


 Şekil III.5 sub prosedür örneği

III.4.2 Function Prosedürler

Sub prosedürlerin kullanımına benzer fakat birden fazla değer alabilir ve değer döndürebilir. Programın herhangi bir yerinde bir şeyler hesaplatıp, değer döndürmek veya değer almak istenirse function prosedürleri kullanılır. Şekil III.5 function prosedürle 2 tane sayı toplanır, sonuç function üzerinden geri dönderilir ve toplam değişkenine atanır. En son işlemde Response.write ile ekranda 20 sayısı yazılır.




Şekil III.6 function prosedür örneği

4.2.1.Sık Kullanacağımız Hazır Fonksiyonlar

Hazır fonksiyonlar veriler üzerinde sıkça kullanılan işlemleri sağlamak amacıyla hazırlanmış sonuç döndüren etiketlerdir. Programlama dili programcının sürekli ihtiyaç duyacağı bu operasyonlar için kendi içinde hazır giriş ve çıkış arabirimleri sunar. Bu arabirimlere hazır fonksiyon adı veriyoruz. [6]

VBScript’in kullanılan hazır birçok fonksiyonu vardır; ancak asp uygulamalarında sık kullanacağımız ve özellikle metin düzenlemeye ait olanlar burada anlatılmıştır.

1.a Tarih ve Saat Fonksiyonları


Visual Basic’in hemen hemen bütün zaman-tarih fonksiyonları VBScript’te de kullanılır. Bu amaçla kullanılan hazır fonksiyonlar:

  • Date:  Bugün tarihini verir. (25.03.2000 gibi)
  • Time:  O andaki saati verir. (22:24:40 gibi)
  • Now:  O andaki tarih ve saati birlikte verir. (25.03.2000 22:24:40 gibi)
  • Weekday:      haftanın gününü alır

VBScript, bu değerleri doğruca işletim sisteminden alır. Dolayısıyla işletim sisteminin bölgesel ayarları Türkiye için yapılmışsa, gün adları Türkçe olarak dönecektir. Ayrıca, tarih ve saat biçimleri de bölgesel ayarlara bağlı olarak, ay önde, gün arkada veya tersi, saat de 12 saat veya 24 saat esasına göre döner. ASP programlarınızı kişisel web server’da denerken kendi bilgisayarınızın tarih ve saatini; gerçek Internet’te çalıştırırken Server’ın tarih ve saatini alınır. Sayfalarınızda ay ve gün adlarını türkçe görüntülemek için, önce Server’ın bölgesel ayarlarını sınamanız ve eğer isimler türkçe gelmiyorsa, bunları çeviren sub’lar veya fonksiyonlar yazmanız gerekebilir.[7]

1.b Karakter-dizisi Düzenleme fonksiyonları


Karakter-dizisi veya string, VBScript için bir kelime veya cümle olabilir. Web sitemizi ziyaret eden kişinin formlarımıza yazacağı ve gönder tuşunu tıklayarak Server’a göndereceği bilgiler string’dir. Fakat bunların hepsi olduğu şekliyle işimize yaramaz. Bunları yeniden düzenlemek, içinden seçmeler yapmak veya biçimlerini değiştirmek gerekebilir. VBScript bu amaçla kullanılmaya hazır bir dizi fonksiyon verir:[7]

  • InStr   Uzun bir string’in içinde vereceğiniz daha kısa bir string’in bulunup bulunmadığını arar; bulursa bu kısa string’in başlama noktasının değerini verir.

  • Len                 Bir String’in uzunluğunu belirler. Kullanım formatı, Uzunluk = Len(string) bu şekildedir.

  • UCase                       Herhangi bir string’in tüm karakterlerini büyük harfe çevirir.
            Kullanım formatı YeniString = UCase(string) bu şekildedir.

  • LCase Vereceğiniz bir String’in tüm karakterlerini küçük harfe çevirir.
            Kullanım formatı YeniString = LCase(string) bu şekildedir.
                  
  • LTrim, RTrim, Trim           Verdiğiniz String’in (sırasıyla) solunda yani baş tarafında; sağında yani sonunda ve hem başında ve hem de sonundaki boşlukları temizler.

  • String               İstediğiniz sayıda ve istediğiniz bir karakterle bir string oluşturur. Kullanımı YeniString = String(3, “*”) bu şekildedir.

  • Left, Right       Bir string’in içinde soldan (baştan) veya sağdan (sondan) verdiğiniz sayıya kadar olan karakterleri verir. Kullanım Solda = Left(string, 4) bu şekildedir.
                  
  • Mid                   Bir string’in içinde başlangıç noktasını ve karakter olarak boyunu verdiğiniz alanda yer alan string’i verir. Kullanımı Ortada = Mid(string, 5, 8) bu şekildedir.

1.c Test Fonksiyonları

VBScript’te kullanılan bazı değişkenlerin o andaki durumu, programın akış kontrolünde kullanılacak bilgiyi sağlar. Örnegin bir değişkenin değeri boş ise, ziyaretçimizin formu tam olarak doldurmadığını düşünebilir. VBScript’de değişkenlerin durumunu sınamak için bazı özel fonksiyon vardır. Bu özel fonksiyonlardan dönen değer true (doğru) veya false (yanlış) olur; doğru sonucun değeri –1, yanlış sonucun değeri ise 0’dır:[7]

  • IsArray          Bir değişkenin dizi-değişken (Array) olup olmadığını sınar.
  • IsDate             Bir değişkenin değerinin tarihe (Date) çevrilip çevrilemeyeceğini sınar.

  • IsEmpty         Bir değişkenin tanımlanıp değer atanmış olup olmadığını sınar.

  • IsNull Bir değişkenin geçerli bir değer tutup tutmadığını sınar.

  • IsNumeric      Bir değişkenin sayı olarak işleme tabi tutup tutulamayacağını sınar

  • IsObject         Bir ifadenin geçerli bir ActiveX veya OLE nesnesine referansta bulunup bulunmadığını sınar.

  • TypeName     Bir değişkenin türünü belirtir.

  • VarType        Bir değişkenin türünü belirten sayıyı verir.

III.5 ASP NESNELERİ
            ASP'de nesneleri sadece öbekler halinde toparlanacak fonksiyonlar ve değişkenlerden ibaret değildir. Asp programında kullandığınız Script dilinin getirdiği nesneler vardır. ASP sayfasını Javascript ile yazarsanız başka, VBScript ile yazarsanız başka dil nesnelerine sahip olursunuz; ancak her ikisinde de ortak olan "Scripting" nesneleri vardır. Her nesne olaylara, metotlara, özelliklere sahiptir.  TabloIII.1 asp’de sık kullanılan nesneler verilmiştir.
 TabloIII.1 asp’de sık kullanılan nesneler
Açıklama
Tanımlama
Response
Web uygulaması boyunca bütün bilgilerin tutulduğu nesnedir.
Request
ASPError nesnesi, sayfadaki hataların kontrol edilmesine yardımcı olur.
Session
Request nesnesi,HTTP isteklerinin tutulduğu nesnedir. Bilgilere form ,cookie, ServerCertificate ‘lerden erişilebilir.
Server
Response nesnesi, server yanıtlarının tutulduğu  nesnedir.
Application
Bu nesne ile  sunucu üzerinde özellik ve metotlara ulaşılır.
ASPError
O anki kullanıcı oturumunun bilgilerini saklamak veya almak için  Session nesnesi kullanılır.

III.5.1 RESPONSE NESNESİ

Response(cevap) nesnesi, webserver'ın kullanıcıya cevap vermesini sağlar. Asp’nin sık kullanılan nesneler arasında yer alır. Tablo III.2 de response nesnesinin özellikleri, metotları ve koleksiyonları gösterilmiştir.

 TabloIII.2 response nesnesinin özellikleri, metotları, koleksiyonu
Özellikleri
Açıklama
Buffer
Buffer özelliği "TRUE" değerinde iken sayfada,  tüm işlemler bitinceye kadar hiçbir ekran çıktısı vermez ve bunları tampo hafızada depolar.
CacheControl
Bu özellikle çıkışların bir proxy sunucuda saklanmasına olanak sağlayan bir özelliktir
Charset(charset_name)
Sayfanın karakter tipini belirtmek için kullanılır.
ContentType
 Sayfanın tipini belirlemek amacıyla kullanılır.
Expires
 Belirtilen bir süre boyunca sayfanın tamponlanmasını sağlayan bir özelliktir.
ExpiresAbsolute
Sayfaların belirtilen bir tarihe kadar geçici bellekte saklanmasını sağlar.
IsClientConnected
Sunucuya herhangi bir ziyaretçinin bağlı olup olmadığını kontrol eder.
Pics(pics_label)
-
Status
-
Metotları
Açıklama
AddHeader(name,value)
Belirli bir değere HTML başlığı ekler.
AppendToLog string
Sunucu log dosyasına bir string ekler.
BinaryWrite(data_to_write)
Binary bir değer yazar.
Clean
Sunucudaki tampon hafızada bulunan bütün bilgileri siler.
End
Sunucu işlemlerini ve scriptin çalışmasını durdurulur ve o zamana kadar tampon hafızada bulunan değerleri browser gönderir
Flush
Bu metot ile tampon hafızadaki bütün bilgiler browser gönderilir
Redirect(URL)
Sayfayı başka bir sayfaya yönlendirmek için kullanılır.
Write(data_to_write)
Herhangi bir veriyi ekrana yazdırmak için kullanılır.
Koleksiyonu
Açıklama
Cookies
Kullanıcının bilgisayarlarında ufak dosyalar oluşturur
  

III.5.1.1 Cookies Koleksiyonu

Cokies(çerezler: text dosyaları) Response nesnesinin bir koleksiyonudur. Kullanıcının bilgisayarlarında ufak dosyalar oluşturur. Bu oluşturulan dosyalar sayesinde kullanıcı bir sonraki siteye gelişinde tanınır ve istenirse ona özel işlemler yaptırılabilir. Şekil III.7 cookies nesnesinin kod yazarken kullanım formatı gösterilmiştir. Cookies’lerin kullanıldığı bazı yerler aşağıda verilmiştir.

·         Online bilgi alışverişinde kullanılırlar: Shopping kartlarındaki malzemelerin tanım ve sayısının tutulması, alışveriş süresi ve kartın geçerlilik sürelerinin tanımlanmasını sağlar.
·         Ziyaretçinin as, soyad, yer gibi bilgilerini oturum boyunca veya belirlenen sürede saklarlar.
·         Ziyaretçinin, sayfa rengi, müzik, şekil ve içerik tercihleri gibi kişisel tercihlerini saklar. [4]

Kullanımı:

Response.Cookies(ismi)[(anahtar)|.özelliği]=değeri
Değişken=Request.Cookies(ismi)[(anahtar)|.özelliği]”
Şekil III.7 cookies nesnesinin kullanımı

 Şekil III.8 verilen cookies örneğinde, ilk kod satırında isim adlı bir cokies koleksiyonu oluşturulur. Response.Cookies ile isim adlı cookies'nin değeri alınırken request(istek) nesnesini kullanarak cookies'nin bulunduğu dizindeki değer x değişkenine atanır. Response nesnesinin write metodu ile ekrana x değişkeninin içeriğini çıktı olarak ekrana yazılır.

Örnek1:

<%
response.Cookies("isim")="hanife"
x=request.Cookies("isim")
response.write("isim="& x)
%>

Çıktı:

isim=hanife
Şekil III.8 cookies nesnesine ilişkin örnek1

Kullanıcı bilgisayarında oluşturulan cookie, geçerlilik süresini belirlenebilir.  Şekil III.9’da verilen örnekte oluşturturular cookie'nin yaşam süresi belirlenir. İstenilen tarihe kadar cokies kullanıcının bilgisayarında bulunur ve daha sora silinir. İsim adlı cokies'nin mayıs 10 saat 1 kadar geçerlilik süresi vardır.

Örnek2:

<%
response.Cookies("isim")=hanife
response.Cookies("isim").Expires=#May 10,2007 01:00:00#
x=request.Cookies("isim")
response.write("isim="& x)
%>
Şekil III.9 cookies nesnesine ilişkin örnek2

Sitelerde birçok cookie kullanılmak istenebilir. Bu durumda cookie’leri alt anahtar isimleri ile sınıflandırılır. Şekil III.10’da verilen örnekte; kullanıcı isminde bir cookies oluşturulur.  Birden fazla bilgi anahtarlama yöntemiyle tutulur ve daha sonra ekrana yazdırılır.

Örnek3:

<%
response.Cookies("kullanici")("isim")="hanife"
response.Cookies("kullanici")("soyad")="doğanay"
response.Cookies("kullanici")("yas")="21"
isim=request.Cookies("kullanici")("isim")
soyad=request.Cookies("kullanici")("soyad")
yas=request.Cookies("kullanici")("yas")
response.write(isim)
response.write("<br>")
response.write(soyad)
response.write("<br>")
response.write("<br>")
response.write(yas)
%>

Çıktı:

hanife
doğanay
21

Şekil III.10 cookies nesnesine ilişkin örnek3

III.5.1.2 Clear Metodu

Clear (boşalt), Buffer metodu ile Script’in sonunu beklerken geçici bir alanda tutulmakta olan html, Clear metodu ile temizlenir, yok edilir. Flush metodunda tampondaki html Browser’a gönderilir; ancak Clear metodu tampon bölgedeki herşeyi yok eder. Böyle telikeli bir metodun kullanılma amacı, ziyaretçinin elektronik alışveriş sitesinde alışverişten vazgeçmesi durumunda, tampon bölgede tutmakta olduğumuz ve alınan mallar listesini içeren html’i bu yöntemle temizlenir. Eğer tampon hafıza boş ise run-time error hatasına sebeb olur. Şekil III.11 kullanım formatı gösterilmiştir. [4]

Kullanımı:

Response.clear

Şekil III.11 clear metodunun kullanımı

Şekil III.11’de Response nesnesinin buffer özelliğini true seçilir. Böylece bütün sunucu scriptlerin işlevi bittikten sonra, browser'a cevap gönderilir.  Response.clear satırına gelindiği zaman, tampon hafızanın içeriği silinir. Bir sonraki satırlardaki bilgiler tampon hafızaya alınarak gösterilir.

Örnek:

<%
response.Buffer=true
%>
<html>
<body>
<p>merhaba:)Hoş geldin siteye</p>
<p>Hayır hoşgeldin siteye demek istemiyooorummm:)</p>
<%
response.Clear
%>
<p>Umarım Sitemi Beğenirsiniz:)</p>
</body>
</html>

Çıktı:

Umarım Sitemi Beğenirsiniz:)
Şekil III.11 clear metoduna ilişkin örnek kod

III.5.1.3 End Metodu

End metodu sunucu işlemlerini ve scriptin çalışmasını durdurur ve o zamana kadar tompon hafızada bulunan değerleri browser gönderir. Şekil III.12 kullanım formatı gösterilmiştir.

Kullanımı:

Response.End
Şekil III.12 end metodunun kullanımı

Şekil III.13’de Response.end satırına gelindiğinde scriptin çalışması durdurulur ve browser'a tompon hafızada olan bilgiler gönderilir.

Örnek:

<%
response.Buffer=true
%>
<html>
<body>
<p>Bir şeyler yazmak istiyorum? düşünmeliyim </p>
<%
response.end
%>
<p>Bitti!Çok geçç daha fazla yazamasın!</p>
</body>
</html>

Çıktı:

Bir şeyler yazmak istiyorum? düşünmeliyim
Şekil III.13 end metoduna ilişkin örnek kod

III.5.1.4 Flush Metodu

Bu metot ile tompon hafızadaki bütün bilgiler browser gönderilir ve
kodlar işlemeye kaldığı yerden devam eder. Kod işleme işlemi bittikten sonra browser’a kodlar tekrar gönderilir. Bu işlemler çok hızlı olduğundan farkedilemez bi Flush metodu kullanılırken response.buffer=true yapılmalıdır. Aksi takdirde run-time error hatasına sebep olur. Şekil III.14 kullanım formatı gösterilmiştir.

Kullanımı:

Response.Flush
Şekil III.14 flush metodunun kullanımı

Şekil III.14’deki örnekte response.flush satırına geldiği zaman tamponda bulunan bilgiler browser gönderilir ve kodlar işlenmeye devam edilir. Kod işleme bittiği zaman tampondaki bütün bilgiler browser'a gönderilir.

<%
Response.Buffer=true
%>
<html>
<body>
<p>evet response.flush gödügü zaman yazımız gözükecekkk:) </p>
<%
Response.Flush
%>
<p>sayfanın tamamı işlendikten sonra bütün tompondaki bilgiler browser gidecek</p>
</body>
</html>
Şekil III.15 flush metoduna ilişkin kod parçacığı

III.5.1.5 Redirect Metodu

Bu metot ile o anki asp sayfasının çalışması durdurularak belirtilen url adresindeki sayfayı browser’a getirir.

Kullanımı:

Response.redirect URL
Şekil III.16 redirect metodunun kullanımı

III.5.1.6 Write Metodu

Asp kodları içerisinde istediğimiz değişkeni veya yazıyı göstermemize olanak sağlar. Response nesnesinin en çok kullanılan metodudur. Asp tagları arasında yazacağımız  “response.write”(değişken yada sabit)  ifadesi ile sayfada, asp kodları içinde istediğimiz herhangi bir değişken yada yazının görüntülenmesi sağlanır.  <%= ... %> bu taglarda “response.write” ile aynı görevi yapmaktadır. Şekil III.17 kullanım formatı gösterilmiştir. [4]

Kullanımı:

Response.Write değer
Şekil III.17 write metodunun kullanımı

            Şekil III.18 response nesnesinin write metodu kullanılarak ekrana birden fazla çıktı gösterilmiştir.

Örnek:

<%
dim mesaj
mesaj="merhaba Dünya"
response.write("Mesaj.....:"&mesaj&"<br><br> ")
response.write("....Yaşamak çook güzel......")
%>

Çıktı:

Mesaj.....:merhaba Dünya

....Yaşamak çook güzel......

Şekil III.18 write metoduna ilişkin kod parçacığı

III.5.1.7 Buffer Özelliği

Buffer (Tampon) özelliği ile sayfanın yüklenme şekli belirlenebilir. True (doğru) olarak ayarlandığında ziyaretçiye gönderilecek sayfanın bütün unsurları bir tampon bölgede toplanır, Script’in çalışması bitinceye kadar beklenir ve html sayfanın hepsi gönderilir. Kimi zaman asp kodumuz sonuna kadar çalıştığında ziyaretçiyi başka bir sayfaya ve siteye yönlendirebilir. Bu gibi sebeplerle, özellikle çok işlem gerektiren ASP sayfalarının baş tarafına bunu sağlayan kodu koymakta yarar olabilir. Buffer özelliği false olarak atanırsa, sayfa tamponlanmadan browser’ a gönderilir. Şekil III.19 kullanım formatı gösterilmiştir.

Kullanımı:

Response.buffer=true veya false
Şekil III.19 buffer özelliğinin kullanımı

Şekil III.20’deki örnekte for döngüsü bitene kadar bütün bilgiler tamponda hafızada tutulur. For döngüsü bittikten sonra browser’a gönderilir.

Örnek 1

<%response.Buffer=true%>
<html>
<body>
<%
for i=1 to 500
  response.write(hanife& "<br />")
next
%>
</body>
</html>
Şekil III.20 buffer özelliğine ilişkin örnek1

Şekil III.21’deki örnekte buffer özelliği ilk kod bloğunda true yapılmıştır. Response.flush kod satırına gelindiği zaman tampondaki bilgiler browser’a gönderilir. Kalan kodlar işlenmeye kaldığı yerden devam edilir. Kod işleme bittikten sonra tampondaki bilgiler browser’a gönderilir.

Örnek 2

<%
Response.Buffer=true
%>
<html>
<body>
<p>evet response.flush gödügü zaman yazımız gözükecekkk:) </p>
<%
Response.Flush
%>
<p>sayfanın tamamı işlendikten sonra bütün tompondaki bilgiler browser gidecek</p>
</body>
</html>
Şekil III.21 buffer özelliğine ilişkin örnek2


III.5.1.8 Cachecontrol Özelliği

            Çıkışların bir proxy sunucuda saklanmasına olanak sağlayan bir özelliktir. Default değeri proxy sunucunun cache belleğine alınmaz. Şekil III.22 kullanım formatı gösterilmiştir.

Kullanımı:

response.CacheControl=public veya private
Şekil III.22 cachecontrol özelliğinin kullanımı


Private ise proxy serverın cache’inde saklanmasına izin verilmez. Public değeri ile proxy serverın cache’inde saklanmasına izin verilir. Şekil III.23’de ilgili kod parçacığı verilmiştir.

Örnek:

<%response.CacheControl="Public"%>
veya
<%response.CacheControl="Private"%>
Şekil III.23 cachecontrol özelliğine ilişkin kod parçacığı

III.5.1.9 Expires Özelliği

Sunucu sayfaları browser’a gönderdiği zaman sayfalar ziyaretçinin geçici belleğinde depolanır. Browser’dan sayfa istenildiği zaman ilk önce bellekte aranır ve bulursa görüntüler. Bu yöntem daha hızlıdır. Response.expires özelliğiyle sayfanın ziyaretçinin geçici belleğinde tutulup tutulmamasını sağlayabilir.  Eğer sayfaların ziyaretçinin geçici belleğinde tutması istenirse, kaç dakika tutulacağı belirlenir. Şekil III.24 expires özelliğin kullanım formatı verilmiştir.

Kullanımı:

response.Expires=sayı
Şekil III.24 expires özelliğinin kullanımı

                Şekil III.26 expires özelliği ile kullanıcının geçiçi bellekte sayfaların tutulup tutulmayacağını belirtilir.

Örnek 1

<%response.Expires=-1%>'geçiçi bellekte tutulmaz

Örnek 2

<%response.Expires=2880%> '48 saat geçiçi bellekte tutulur.
Şekil III.25 expires özelliğine ilişkin kod parçacığı

III.5.1.10 Expiresabsolute Özelliği

Bu özellik ile sayfaların ziyaretçi geçici belleğinde hangi tarih ve saate kadar kalacağını belirlenir. Şekil III.26 kullanım formatı gösterilmiştir.

Kullanımı:

response.ExpiresAbsolute =[tarih][zaman]
Şekil III.26 expiresabsolute özelliğinin kullanımı

III.5.1.11 Isclientconnected  Özelliği

Bu özellikle sunucuya herhangi bir ziyaretçinin bağlı olup olmadığını kontrol edilir. Şekil III.27 kullanım formatı gösterilmiştir.

Kullanımı:

Response.IsClientConnected
Şekil III.27 isclientconnected özelliğinin kullanımı

Şekil III.28’de verilen örnekte sunucuya kullanıcı bağlı ise çıktı olarak "hala bağlısınız" yazısı değil ise "Kullanıcı bağlı değil!" yazısı yazar.

Örnek:

<%
If response.IsClientConnected=true then
  response.write("Hala bağlısınız!")
else
  response.write("Kullanıcı bağlı değil!")
end if
%>
Şekil III.28 isclientconnected özelliğine ilişkin kod parçacığı

III.5.2 Form Elemanları ve Asp’de Kullanımı

Formlar, web sayfasını ziyaret eden kullanıcılardan bilgi almak için kullanılır. Html formları birçok kontrol elemanına sahiptir. Bunlardan bazıları checkbox’lar, radio buttonları, menu’lerdir. Kullanıcılar genellikle kontrolleri submit yapılmadan önce, doldurarak veya düzelterek kendine özel bir form oluştururlar. Form submit olduktan sonra formdaki veriler işlenir.

 Form içerisindeki nesnelerin kullanılabilmesi için <form></form> tagı kullanılmalıdır. Method, Formun hangi yöntemle karşı tarafa gönderileceğini belirler. İki değeri vardır. Bunlar get ve post ‘dur. ActionFormun hangi adrese gönderileceğini belirler. Name, Formun adını belirler. Şekil III.29 ‘da html form formatı verilmiştir.[5]

Kullanımı:

<FORM action="name" method="post/get">
‘kontrol elemanları
</FORM>
Şekil III.29 html form formatı

Şekil III.30’da form oluşturularak, submit  butonuna basıldığı zaman  isle.asp sayfasına formdaki değerler gönderilmektedir. Formun action kısmında formdaki bilgilerin isle.asp, gönderileceği belirtilir.

Örnek:

<FORM action="isle.asp" method="post">
    <P>
    <LABEL for="firstname">İsim.......: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Soyisim: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">Email....: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male">
    Bay
    <BR>
    <INPUT type="radio" name="sex" value="Female">
    Bayan<BR>
    <INPUT type="submit" value="Gönder"> <INPUT type="reset" value="Sil">
    </P>
 </FORM>
Şekil III.30 form örneği

III.5.2.1 Get Ve Post Metotu

Request nesnesinin koleksiyonu olan response.querystring ve request.form koleksiyonları ile formdan gelen get  veya post olarak gönderilen bilgileri alabiliriz.
Formumuz method="post" olacak seçilmiş ise gelen bilgiler request.form ile alınır. Method="get " şeçilmişse request.querystring ile bilgiler alınır.

Aralarındaki farklar ise:

§  Get metodunda, aktarabilecek karakter sayısı sınırlıdır. Yaklaşık 4000 byte’tır. Ortalama bir form kullanımında yeterlidir. Post metodunda istediğimiz kadar veriyi aktarabiliriz.
§  Get metodunda, form parametreleri adres çubuğundan görülür. Bu istenmeyen bir durum olabilir çünkü sql injection açığı olduğu zaman kullanıcı veritabanındaki bilgilere ulaşabilir ve sitede her türlü değişikliği yapabilir. Post metodunda ise adres çubuğunda herhangi bir şey gözükmez.
§   Get metodu, ASP içinde request.querystring(“form alan ismi”) ile formdan gelen bilgiler alınır. Post metodu ise request.form(“form alan ismi”)  bilgiler alınır.


III.5.2.2 Form Elemanlari

Kullanıcı ile etkileşimli olan kontrollere form elemanı denir. Form elemanları name özelliğine sahiptir. Bunlardan en çok kullanılanlar aşağıda anlatılmıştır.

2.a Textbox

Kullanıcıdan tek satırlık bilgi almak için kullanılır. Şekil III.31 textbox kullanım formatı verilmiştir.

Kullanımı:

<form>
İSİM: 
<input type="text" name="ad">
<br>
Soyisim: 
<input type="text" name="soyad">
</form>
Şekil III.31 textbox kullanım formatı

Şekil III.32’de verilen textbox örnek1’de gönder butonuna  basıldığı zaman isle.asp sayfasına 3 değer gönderilir. Bunlar ad, soyad ve email’dir. Örnek2’de isle.asp sayfasının kodları verilmiştir. İsle.asp sayfasında bu verileri nasıl alabileceği gösterilmiştir. Ekranda ad değişkenin değeri yazılacaktır.


Örnek1:

<FORM action="isle.asp" method="post">
    <P>
    <LABEL for="isim">İsim.......: </LABEL>
              <INPUT type="text" name=”ad” id="isim"><BR>
    <LABEL for="soyad">Soyisim: </LABEL>
              <INPUT type="text" name=”soyad” id="soyad"><BR>
    <LABEL for="email">Email....: </LABEL>
              <INPUT type="text" name=”email” id="email"><BR>
    <INPUT type="submit" value="Gönder"> <INPUT type="reset" value="Sil">
    </P>
 </FORM>

Örnek2:

<body>
<%
ad=request.form("ad")
soyad=request.Form("soyad")
email=request.Form("email")
response.Write("Adınız..:"&ad)
%>
</body>
Şekil III.32 textbox örnekleri

2.b TextArea

Daha içerikli bilgilerin alınmasını sağlayan form elemanıdır. Kullanımı texbox ‘lara benzemektedir. Şekil III.33’de textarea kullanım formatı verilmiştir.

Kullanımı:

<form action="" method="get/post">
<textarea name="" cols="" rows=""></textarea>
</form>
Şekil III.33

2.c Radyo Butonları

Değerleri önceden tanımlı form elemanlarıdır. Kullanıcının mutlaka bir tercih belirtilmesi istenildiği zamanlarda kullanılır. Aynı isimli radyo butonları arasında sadece bir tanesini seçebilir. Radyo butonları ile yapılmış uygulamalara en güzel örnek anket uygulamaları gösterilebilir. Şekil III.34 radyo butonlarının kullanm formatı verilmiştir.


Kullanımı:

<form action="" method="get/post">
<input name="" type="radio" value="" />
<input name="" type="radio" value="" />
</form>
Şekil III.34 radyo butonu kullanım formatı

2.d Checkboxes

Kullanıcının bir veya birden fazla seçenekte bulunması için kullanılır. Şekil III.35 checkboxes kullanım formatı verilmiştir.

Kullanımı:

<form action="" method="get">
<input name="" type="checkbox" value="" />
<input name="" type="checkbox" value="" />
</form>
Şekil III.35 checkboxes kullanım formatı

III.5.2.3 Form Koleksiyonu

Post metotu kullanılmış bir formdan bilgileri almak için kullanılır. Eğer göndermek istediğin veri 100kb üstünde ise request.form kullanılmaz. Şekil III.36 form koleksiyonunun kullanım formatı verilmiştir.


Kullanımı:

Request.Form(element_name)[(index)|.Count]
Şekil III.36 form koleksiyonunun kullanım formatı

            Şekil III.37’de verilen örnekte, form sayfasında isim, soyad, ve hayvan bilgileri alınarak kayit.asp sayfasına post metodu ile gönderilir. Kayit.asp sayfasında alınana bilgilerden isim ve sevdiği hayvan bilgisi ekrana çıktı olarak gönderilir.

Örnek:

Form sayfamız

<form action="kayit.asp" method="post">
<p>isminiz: <input name="isim"></p>
<p>Soyisminiz: <input name="soyad"></p>
<p>En sevdigin hayvan:
<select name="hayvan">
<option></option>
<option>Kedi</option>
<option>Köpek</option>
<option>Yılan</option>
<option>fare</option>
</select>
</p>
<p><input type="submit"></p>
</form>

kayit.asp sayfamız

merhaba, <%=Request.Form("isim")%>.
En sevdiğiniz hayvan <%=Request.Form("hayvan")%>.

Çıktı:

merhaba, hanife. En sevdiğiniz hayvan Kedi.
Şekil III.37 form koleksiyonuyla ilgili örnek

III.5.3 Request Nesnesi

Browser sunucudan sayfa istediği zaman bir request(istek) bulunur. ASP de Request nesnesi kullanıcıdan bilgi almak için kullanılır. Request Nesnesi en çok web formlarında kullanılır. TabloIII.3 Request nesnesinin özellikleri, metotları ve koleksiyonları gösterilmiştir.

TabloIII.3 response nesnesinin özellikleri, metotları,koleksiyonu
Özellikleri
Açıklama
TotalBytes
Browser tarafından gönderilen bilginin toplam olarak kaç byte olduğunu bulmak için kullanılır.
Metodu
Açıklama
BinaryRead
POST metodu ile sunucuya gönderilen bilgilerin alınması için kullanılır. Form ve querystring metotlarından farklı olarak text dışında veri gönderildiğinde bu metod bu verilerin okunması için kullanılır.
Koleksiyonları
Açıklama
Clientcertificate
Ziyaretçi sertifikasını yakalar.
Cookies(isim)
Cookies'nin değerini alır.
Form(isim)
Post metotu kullanılmış bir formdan bilgileri almak için kullanılır.
QueryString(isim)
Query string içindeki değişken değerlerini yakalar.
ServerVariables(server_değişkeni)
Sunucu değişken değerlerini alır.


III.5.3.1 Querystring Koleksiyonu

Querystring koleksiyonu ile adres çubuğundan başka sayfalara değişken veya değişkenlerin taşınmasını sağlar. <A href> tagıyla veya response.redirect ile yönlendirilen sayfaya istenilen değişken değerleri taşınabilir. Sayfamızın adını yazdıktan sonra ? işareti ve sayfaya taşıyacağımız değişkenin adı ve değeri belirtilir. Şekil III.38 kullanım formatı verilmiştir.

Kullanımı:
 
Request.QueryString(değişken)[(değer)|.Count]
Şekil III.38 querystring koleksiyonunun kullanım formatı

Şekil III.39’da verilen örnek1’de requestquery.asp sayfasına id=hanife ve id=doğanay bilgileri get metodu ile gönderilir. İd değişkeninde bulunan veriler requestquery.asp sayfasında, for döngüsü ile ekrana yazdırılır.

Örnek1:
 
Bu sayfayla requestquery.asp veri gönderiyoruz.
 
<a href="requestquery.asp?id=hanife&id=doğanay">Gödermeye hazırmısın al asp'ye</a>

requestquery.asp

alınan veriler sıralanıyor.
<%
for i=1 to request.QueryString("id").count
  response.Write(request.QueryString("id")(i)&"<br>")
next

Çıktı

hanife
doğanay

Örnek2

<body>
<form action="query.asp" method="get">
  <p>
    AD.........:  
      <input type="text" name="ad"  />
  </p>
  <p>
    <label>
    SOYAD...:<input type="text" name="yas" />
    </label>
</p>
  <p>
    <label>
    <input type="submit" name="Submit" value="Gönder" />
    </label>
  </p>
</form>
</body>

query.asp sayfamıza form da doldurduğumuz alanlardaki bilgiler gelmektedir.

<%
response.Write("merhaba "&request.QueryString("ad")&"<br>")
response.write("yaşınız"&request.QueryString("yas"))
%>

Çıktı:

merhaba
yasiniz21
Şekil III.39 querystring koleksiyonu ile ilgili örnekler

III.5.3.2 Servervariables Koleksiyonu

Servervariables koleksiyonu http header bilgilerini bulundurmak suretiyle server ve gönderilen her istek ile ilgili bilgilere ulaşmamızı sağlar. Şekil III.40 servervariables değişkenin kullanım formatı verilmiştir. Tablo III.4 server değişkenleri ve değerleri bir tablo olarak verilmiştir.

Kullanımı:

<%
response.write("kullanıdığınız tarayıcı" &request.ServerVariables("HTTP_USER_AGENT"))
response.write("IP adresin" &request.ServerVariables("REMOTE_ADDR"))
response.write("kullanıdığınız tarayıcı" &request.ServerVariables("HTTP_USER_AGENT"))
 %>

Şekil III.40 servervariables koleksiyonunun kullanım formatı

TabloIII.4 server değişkenleri ve değerleri

Değişkenin adı
Değeri
ALL_Http
HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde "HTTP_" öneki vardır.
ALL_RAW Http
Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser'ın verdiği şekilde gösterilir.
Appl_Md_Path
Web Server'ın ISAPI.DLL dosyası için varsaydığı kök dizin
Appl_Physical_Path
Web Server'ın varsaydığı kök dizinin gerçek yolu
Auth_Password
Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
Auth_Type
Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi
Auth_User
Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı
Cert_Cookie
Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)
Cert_Flags
Sertifikanın varlığını gösteren bit değeri
Cert_Issuer
Sertifika varsa veren kurum
Cert_Keysize
Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri
Cert_Secretkeysize
Özel anahtar değeri
Cert_Serialnumber
Sertifika seri no.
Cert_Server_Issuer
Sertifikayı veren merci
Cert_Server_Subject
Server Sertifikasının "konu" alanı değeri
Cert_Subject
İstemci Sertifikasının konu alanı değeri
Content_Length
İstemcinin gönderdiği bilgi yumağının boyutu
Content_Type
Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür
Gateway_Interface
Web Server'ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1
Https
Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF
Https_Keysize
Secure Sockets Layer için bağlantı anahtar sayısı
Https_Secretkeysize
Özel Server sertifikasının gizli anahtar sayısı
Https_Server_Issuer
Özel Server sertifikasının veren merci
Https_Server_Subject
Özel Server sertifikasının konusu
Instance_Id
Web Server'ın aynı anda kaç kere çalışmakta olduğu
Instance_Meta_Path
Şu anda çalışmakta olan Web Server'ın Meta yolu
Local_Addr
İstemcinin IP numarası
Logon_User
İstemci Windows NT sisteminde ise oturum açma adı
Path_Info
Çalışmakta olan ASP'nin göreli yolu ve adı
Path_Translated
Çalışmakta olan ASP'nin gerçek yolu ve adı
Query_String
İstemcinin gönderdiği bilgi kümesi
Remote_Addr
İstemcinin Host'unun (ISS'inin) IP'si
Remote_Host
İstemcinin Host'unun (ISS'inin) adı
Remote_User
İstemcinin gerçek adı
Request_Method
İstemciden bilgi isteme yöntemi (GET veya POST)
Script_Name
Çalışmakta olan ASP'nin adı
Server_Name
Sunucu'nun adı
Server_Port
Sunucuya bağlantının geldiği TCP kapı numarası
Server_Port_Secure
TCP kapısı güvenli ise 1, değilse 0
Server_Protocol
Server'ın çalıştırdığı HTTP'nin sürümü
Server_Software
Server programının adı ve sürümü
Url
Şu anda geçerli URL

Şekil III.44’de verilen örnekte servervariables koleksiyonunu bütün özellikler  for each döngüsü ile ekrana yazdırılır.

Örnek:

<%
for each x in Request.ServerVariables
  response.write(x & "<br />")
next
 %>
Şekil III.44 servervariables koleksiyonunun bütün özelliklerinin sıralanması

III.5.3.3 Totalbytes Özelliği

Totalbytes özelliği ile browser tarafından gönderilen bilginin toplam olarak kaç byte olduğu ögrenilir.  Şekil III.45 totalbytes özelliğinin kullanım formatı verilmiştir.

Kullanımı:

değişken=Request.Totalbytes
Şekil III.45 totalbytes özelliğinin kullanım formatı

Şekil III.46’da bir önceki sayfadan, gelen bilginin toplam olarak kaç byte olduğunu toplambyte değişkenine atar.

Örnek:
 
<%
dim toplambyte
toplambyte=Request.TotalBytes
%>
Şekil III.46 totalbytes özelliğinin kullanım formatı
 
III.5.4 Session Nesnesi

Session kelime karşılığı oturumdur. Ziyaretçi sunucuya bağlandığı zaman otomatik olarak, web sitesinde bir session açılmış olur. Sessionlar oluşturularak oturum kapanana kadar ziyaretçinin bütün yaptıkları izlenebilir.  Bütün sayfalarda geçerli olabilecek değişkenleri session nesnesiyle oluştururuz. Session nesnesi bilgileri tek bir kullanıcıya özel olarak depo eder. Sunucu her bir kullanıcıya ayrı bir session oluşturur. Tablo III.5’de session nesnesinin özellikleri, metotları, koleksiyonları ve olayları verilmiştir.






Tablo III.5 session nesnesinin özellikleri,metotları,koleksiyonları ve olayları
Özellikleri
Açıklama
CodePage
CodePage özelliği, sayfada kullanılan dili belirtir.
LCID
Session nesnesinin LCID özelliği, sayfamızdaki tarih, saat gibi bölgesel ayarları yapmamızı sağlar.
SesionID
Her oturum başlatıldığında, sunucumuz tarafından oturumu başlatan kişiye bir numara vermemizi sağlar.
Timeout
Sunucunun oturum süresini bu özellik sayesinde değiştirebiliriz.
Metotları
Açıklama
Abandon
Abandon yöntemi, bir Session nesnesinde saklı olan tüm nesneleri yok eder.
Contents.Remove(Item or Index)
Contents.remove metodu, Contents koleksiyonundaki istenilen değerleri siler.
Contents.RemoveAll()
Contents.remove metodu, Contents koleksiyonundaki bütün değerleri siler.
Koleksiyonu
Açıklama
Content
O ana kadar oluşturulan sessionları, Contents koleksiyonu tutar.
StaticObjects
HTML de kullanılan <OBJECT> etiketi ile olusturulmus olan oturum nesnelerini içerir.
Olayları
Açıklama
OnEnd
Kullanıcı oturumu bittiğinde yapılması gerekenleri tanımlar.
 
OnStart
Kullanıcı oturumu başladığında yapılması gerekenleri tanımlar.

III.5.4.1 Contents Koleksiyonu

O ana kadar oluşturulan sessionları, contents koleksiyonu saklar. Contents koleksiyonunu kullanarak asp’de oluşturduğumuz sessionların hepsine ulaşabiliriz. Şekil III.47’de session nesnesinin kullanım formatı verilmiştir.

Kullanımı:
 
Session.Contents(değer)
Şekil III.47 session nesnesinin kullanım formatı
 
               Şekil III.48 verilen örnek1’de 3 tane session oluşturulur. Oluşturulan bu session’la, session2.asp sayfasına geçildiği zaman sayfada yeni oluşturulan sessionlar ve diger sayfadan gelen sessionlar ekranda çıktı olarak yazılır.

Örnek1:
 
<% session("deneme")="bu bir deneme" 
session("slm")="merhaba"
session("hi")="how are you"
response.write("session’lar oluşturuldu...")
response.Write("<a href=session2.asp>diger sayfaya session taşıyoruz</a>")
%>
 
Çıktı:
 
session'lar olusturuldu...diger sayfaya session tasiyoruz
 
Örnek2:
 
Session2.asp
<% 
session("ad")="hanife"
session("soyad")="doganay"
session("yas")="21"
session("anneadi")="selver"
session("babaadi")="hilmi"
response.write("toplam session değeri....:"+cstr(session.Contents.count)+"<br>")
for i=1 to session.Contents.count
  response.write(session.Contents(i)+"<br>")
next
%>
 
Şekil III.48 session nesnesine ilişkin örnekler
 
 

III.5.4.2 Codepage Özelliği

CodePage özelliği kullanılarak sayfada kullanılan dili belirtilebilir. Şekil III.49 codepage özelliginin kullanım formatı verilmiştir.

Kullanımı:
 
Session.CodePage=(Codepage)
Şekil III.49 codepage özelliğinin kullanım formatı
 
               Sayfamızda kullandığımız dil Türkçe ise, Türkçe karekterlerin doğru gözükmesi için şekil III.50’deki kod yazılır.

Örnek:
 
<%
Session.CodePage = 1254
%>
  • 1252 – Amerikan İngilizcesi ve çok kullanılan dünya dilleri
Şekil III.50 codepage özelliğinin kullanım formatı
 
III5.4.3 Lcid Özelliği

Session nesnesinin LCID özelliği ile sayfamızdaki tarih, saat gibi bölgesel ayarları yapılır. Bulunulan konuma veya bölgeye göre özel İnteger değere sahiptir. Bölgelere göre integer değeri tablo III.6 da gösterilmiştir. Şekil III.51 LCID özelliğinin kullanım formatı verilmiştir.

Kullanımı:
 
Session.LCID=LCID
Şekil III.51 lcid özelliğinin kullanım formatı

Şekil III.52’de verilen örnekte 4 farklı lcid değeri verilerek saat ve para değeri ekrana çıktı olarak yazılır.

Örnek:

<%
response.write("<p>")
response.Write("Ana değeri  : "&session.LCID&"<br>")
response.write("Saatiniz...: "&date()&"<br>")
response.Write("Para biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
session.LCID=1036
response.write("<p>")
response.Write("Şuanki LCD değeriniz  : "&session.LCID&"<br>")
response.write("Tarihiniz...: "&date()&"<br>")
response.Write("Şuanki Para biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
Session.LCID=3079
response.write("<p>")
response.Write("Şuanki LCD değeriniz  : "&session.LCID&"<br>")
response.write("Tarihiniz...: "&date()&"<br>")
response.Write("Şuanki Para biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
Session.LCID=2057
response.write("<p>")
response.Write("Şuanki LCD değeriniz  : "&session.LCID&"<br>")
response.write("Tarihiniz...: "&date()&"<br>")
response.Write("Şuanki Para biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
%>

Çıktı:
Ana degeri : 2057
Saatiniz...: 22/01/2007
Para biriminiz...: £100.00

Suanki LCD degeriniz : 1036
Tarihiniz...: 22/01/2007
Suanki Para biriminiz...: 100,00 €

Suanki LCD degeriniz : 3079
Tarihiniz...: 22.01.2007
Suanki Para biriminiz...: € 100,00

Suanki LCD degeriniz : 2057
Tarihiniz...: 22/01/2007
Suanki Para biriminiz...: £100.00


Şekil III.52 lcid özelliğine ilişkin örnek

Tablo III.6  ülkere göre lcid değeri
LCID
DİL
LCID
DİL
Afrikaans
Albanian
Arabic(Algeria)
Arabic(Bahrain)
Arabic(Egypt)
Arabic(Iraq)
Arabic(Jordan)
Arabic(Kuwait)
Arabic(Lebanon)
Arabic(Libya)
Arabic(Morocco)
Arabic(Oman)
Arabic(Qatar)
Arabic(Saudi Arabia)
Arabic(Syria)
Arabic(Tunisia)
Arabic(U.A.E.)
Arabic(Yemen)
Basque
Belarusian
Bulgarian
Catalan
3076
Chinese(Hong Kong)
Chinese(PRC)
4100
Chinese(Singapore)
Chinese(Taiwan)
Croatian
Czech
Danish
Dutch(Belgian)
Dutch(Standard)
9
English
English(Australian)
English(Belize)
English(British)
English(Canadian)
English(Caribbean)
English(Ireland)
English(Jamaica)
English(New Zealand)
English(South Africa)
English(Trinidad)
English(United States)
Estonian
Faeroese
Farsi
Finnish
French(Belgian)
French(Canadian)
French(Luxembourg)
French(Standard)
French(Swiss)
Gaelic(Irish)
Gaelic(Scots)
German(Austrian)
German(Liechtenstein)
German(Luxembourg)
German(Standard)
German(Swiss)
Greek
Hebrew
Hindi
Hungarian
Icelandic
Indonesian
Italian(Standard)
Italian(Swiss)
Japanese
Korean
Korean(Johab)
Latvian
Lithuanian
Macedonian
Malaysian
Maltese
Norwegian(Bokmal)
Norwegian(Nynorsk)
Polish
Portuguese(Brazilian)
Portuguese(Standard)
Rhaeto-Romanic
Romanian
Romanian(Moldavia)
Russian
Russian(Moldavia)
Sami(Lappish)
Serbian(Cyrillic)
Serbian(Latin)
Slovak
Slovenian
Sorbian
Spanish(Argentina)
Spanish(Bolivia)
Spanish(Chile)
Spanish(Colombia)
Spanish(Costa Rica)
Spanish(Dominican Republic)
Spanish(Ecuador)
Spanish(El Salvador)
Spanish(Guatemala)
Spanish(Honduras)
Spanish(Mexican)
Spanish(Nicaragua)
Spanish(Panama)
Spanish(Paraguay)
Spanish(Peru)
Spanish(Puerto Rico)
Spanish,Spain-Modern Sort
Spanish(Spain - Traditional Sort)
Spanish(Uruguay)
Spanish(Venezuela)
Sutu
Swedish
Swedish(Finland)
Thai
Tsonga
Tswana
Turkish
Ukrainian
Urdu
Venda
Vietnamese
Xhosa
Yiddish
Zulu
default

III.5.4.4 Sessionid Özelliği

Yeni bir oturum açıldığında, sunucu tarafından oturumu başlatan kişiye bir numara verilir. Bu numara, diğer ziyaretçilere verilen numaradan farklıdır. Her kullanıcı için ayrı bir numara tahsis etmiş ve işlerimi bu numaralara göre yapılmış olurunur. Bu numaranın ne olduğunu, SessionID özelliği yardımı ile bulunur. Sunucunun gönderdiği değer long formatındadır.

Kullanımı:
 
Session.SessionID
Şekil III.53 sessionid özelliğinin kullanım formatı

Şekil III.55’de verilen örnekte, o anda bulunan kullanıcı için verilen sessionid ekrana yazdırılmaktadır.

Örnek:

<%
response.write(session.SessionID)
%>

Çıktı:

586757576
Şekil III.54 sessionid özelliğine ilişkin örnek

III.5.4.5 Timeout Özelliği

Ziyaretçi siteye ilk ziyaret ettiği zaman, onunla ilgili session aktif olur. Ziyaretçi, bir sayfadan diğerine geçse bile, eğer bazı session değişkenlerine onunla ilgili bilgi atamışsak, bu bilgiler silinmez. Session değişkenlerini sayfalar arasında taşımamıza gerek yoktur, onlar ziyaretçi sitede kaldığı sürece veya oturum sona erme zamanı ile belirtilen dakika boyunca aktif kalırlar.
Ziyaretçi sayfalarımızı dolaşırken oluşturulan session nesnesi, belirlenen ya da önceden sunucu tarafından belirlenen zaman aşılınca sona erer. Ayrıca, ziyaretçi siteyi terk ettiği zaman da onunla ilgili oturum sona erer. Sunucunun oturum süresini TimeOut özellik sayesinde değiştirebilir. Genellikle sunucuların oturum süresi, varsayılan olarak 20 dakikadır. Yani, bir ziyaretçi 20 dakika boyunca hiçbir aktivite yapmazsa, bir başka deyişle hiçbir sayfa gezmez, sadece sitede durursa, onun oturumu kapatılacak demektir. TimeOut’a verilen değer dakika cinsindendir. Şekil III.55 ‘de timeout nesnesinin kullanım formatı verilmiştir.


Kullanımı:
 
Session.Timeout[=nDakika]
Şekil III.52 timeout özelliğinin kullanım formatı

III.5.4.6 Abandon Metotu

Abandon yöntemi, bir session nesnesinde saklı olan tüm nesneleri yok eder ve kaynaklarını bırakır. Abandon yöntemini kullanılmak istenmiyorsa, sunucu bu nesneleri oturumun süresi bittiğinde yok eder. Abandon metodu çağrıldığı zaman session nesnesi bir havuza alınır sayfadaki bütün komutlar işlendikten sonra session nesnesi silinir. Şekil III.53’de abandon metodunun kullanım formatı verilmiştir.

Kullanımı:
 
Session.Abandon
Şekil III.53 abandon metodunun kullanım formatı

Şekil III.54’de verilen örneğin ilk satırında session abandon metodu yazılmıştır. Daha sonra id ve ad isimli 2 session değişkeni oluşturularak, değerler verilir. Sayfadaki bütün komutlar işlendikten sonra session’lar yok edilir. Session7.asp sayfasında herhangi bir sesion değeri gösterilmez.

Örnek:

<%
session.Abandon
session("id")="1"
session("ad")="hanife"
response.write("<a href=session7.asp>Diger sayfaya aktarımayacam id ve ad sessionları</a>")
%>

Session7.asp

<%
response.write(session(id)&"<br>")
response.write(session(ad)&"<br>")
response.Write("değerler gösterilmedi")
%>

Çıktı:

degerler gösterilmedi

Şekil III.54 abandon metodunun kullanım form


III.5.4.7 Contents.Remove Meotu

Contents.remove metodu, Contents koleksiyonundaki istenilen değerleri siler. Şekil III.55’de kullanım formatı verilmiştir.

Kullanımı:
 
Session.Contents.Remove(isim|index)
Şekil III.55 contents.remove metodunun kullanım form

               Şekil III.56’da verilen örnekte 2 numaralı session, session.contents.remove metodu ile silinmiştir.

Örnek:
 
<%
session("ulke")="türkiye"
session("şehir")="istanbul"
session("okul")="marmara üniversitesi"
session.Contents.remove(2)
for i=1 to session.Contents.count
 response.write(session.Contents(i)&"<br>")
next
%>
 
Çıktı:
 
türkiye

marmara üniversitesi
Şekil III.56 contents.remove metoduna ilişkin örnek

III.5.4.8 Onstart ve Onend Olaylari

OnStart ve OnEnd olayları, kullanıcı oturumu başladığında ve bittiğinde yapılması gerekenleri tanımlar. Şekil III.57 kullanım formatı verilmiştir.

Kullanımı:
 
<script language="vbscript" runat="server">
Sub Session_OnStart
. . . 
End Sub
Sub Session_OnEnd
. . . 
End Sub
</script>
Şekil III.57 onstart ve onend olaylarının kullanım formatı

Şekil III.58’de verilen örnek kod parçacığı, global.asa sayfası içerisinde yazılır. Toplam ziyaretçi sayısı hesaplanır. Ziyaretçi sayısını göstermek istediğin sayfaya  “anada sitemizde <% response.write(application("ziyaretci"))%> kadar kişi onlinedır.” şeklinde bir kod eklenebilir.

Örnek:

global.asa

<script language="vbscript" runat="server">

Sub Application_OnEnd()
Application("toplamziyaratci")=Application("ziyaretci")
End Sub

Sub Application_OnStart
Application("ziyaretci")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("ziyaretci")=Application("ziyaretci")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("ziyaretci")=Application("ziyaretci")-1
Application.UnLock
End Sub

</script>
Şekil III.58 onstart ve onend olaylarıyla ilgili örnek kod

III.5.5 Application Nesnesi

Yığın halinde tek başlarına çalışabilen asp uygulamalarını birbirleriyle ilişkilendirmek için application nesnesi kullanılır. Kullanımı session nesnesine benzemektedir. Application nesnesini bütün kullanıcılar kullanabilir yani application nesnesi globaldir. Global bir değişken olduğu için global.asa dosyası altında tutulurlar. Session nesnesini anlatırken her kullanıcıya ayrı bir oturum açıldığından bahsetmişti. Ziyaretçi sayfayı kapattığı zaman oturum kapanacaktır. Hiç bir oturumda değişmeyen ve bütün ziyaretçiler için geçerli olan tanımlamalar veya değerler application nesnesiyle yapılır. Application nesnesini bütün asp dosyalarının koleksiyonlarını tutan sanal bir dosya gibidir. Application nesnesi temel bir değişken olarak tanımlanabilir. Bu değişken bütün sayfalarda geçerlidir. Tablo III.7’de application nesnesi koleksiyonları, metotları ve olayları verilmiştir.

Tablo III.7 application nesnesinin metotları, koleksiyonlar ve olayları
Metotları
Açıklama
Lock
'Application'ı Kilitlemek için kullanılır
Unlock
Kilitlenen 'Application' serbest bırakmak için kullanılır.
Contents.Remove(Item or Index)
Contents.remove metodu, Contents koleksiyonundaki istenilen değerleri siler.
Contents.RemoveAll()
Contents.remove metodu, Contents koleksiyonundaki bütün değerlerini  siler.
Koleksiyoları
Açıklama
Content
Applicaton nesnesiyle oluşturulmuş bütün değerleri contents koleksiyonu tutar.
StaticObjects
Global.asa da sitaticObjects olarak tanımlanmış application nesnelerini tanımlar.
Olayları
Açıklama
OnEnd
Application_OnEnd olayı application bittiği zaman meydana gelir. Olayın gerçekleştiği yer global.asa dosyasıdır.
OnStart
Application_OnStart olayı ilk oturum oluşturulmadan önce meydana gelir. Olayın gerçekleştiği yer global.asa dosyasıdır.

III.5.5.1 Contents Koleksiyonu

Applicaton nesnesiyle taradından oluşturulmuş bütün değerleri contents koleksiyonu tutar. Şekil III.59 kullanım formatı veriliştir.

Kullanımı:

Apllication.contents(değer)
Şekil III.59 contents koleksiyonunun kullanım formatı

Şekil III.60’da verilen örnekte 2 tane application nesnes, oluşturularak , for each döngüsü yardımıyla ekrana yazdırılır.

Örnek:

<%
application("slm")="hello"
application("nereye")="word"

for each x in Application.Contents
  Response.Write(x & "=" & Application.Contents(x)&"<br>" )
next
%>

Çıktı:

slm=hello
nereye=word
Şekil III.60 contents koleksiyonuna ilişkin örnek kod

III.5.5.2 StaticObjects Koleksiyonu

               Global.asa da staticObjects olarak tanımlanmış application nesnelerini tanımlar.Şekil III.61’de staticobjects koleksiyonunun kullanım formatı verilmiştir. Şekil III.62 verilen örnekte staticobjects koleksiyonunun değerleri gösterilebilir.

Kullanımı:
 
Application.StaticObjects(değer)
Şekil III.61 staticobjects koleksiyonunun kullanım formatı

Örnek:
 
<%
for each deger in Application.StaticObjects
  Response.Write(x & "<br />")
next
%>
Şekil III.62 staticobjects koleksiyonuna ilişkin örnek kod
 
III.5.5.3 Contents.Remove  Özelliği

Applicationda bulunan öğelerin isim veya numaralarına silen bir özelliktir. Şekil III.63’de kullanım formatı verilmiştir.


Kullanımı:
 
application.Contents.Remove(isim|index)
Şekil III.63 contents.remove koleksiyonunun kullanım formatı

Şekil III.64’de verilen örnekte application.Contents.remove(2) ile belirtilen application değeri silinir.

Örnek

<%
application("adi")="hanife"
application("sayadi")="angel"
application("age")="47"
application("mesleği")="bankacı"
application.Contents.remove(2)
for each x in application.Contents
  response.Write(application.Contents(x)&"<br>")
next 
%>

Çıktı:

angel
47
bankaci
Şekil III.64 staticobjects koleksiyonuna ilişkin örnek kod

III.5.5.4 Lock Ve Unlock Metotları

Lock metodu application nesnesi kilitler. Application nesnesine değer atarken herhangi bir kullanıcının application nesnesindeki değeri değiştirmemesi için Lock metodu kullanılır. Unlock metodu ile kilitlediğimiz application nesnemizi serbest bırakırız. Şekil III.65’de kullanım formatları verilmiştir.

Kullanımı:
 
Application.Lock
Application.Unlock
Şekil III.65 lock ve unlock metotlarının kullanım formatı

Şekil III.66’da verilen örnekte hangi bir ziyaretçi sayfaya bağlandığı zaman, lock metodu devreye girerek , application'ı kilitliyor ve kullanıcı giriş yaptıktan sonra 1 değer arttırıyor. Application.unlock metodu ile diğer kullanıcıların application’ı kullanabilmeleri için serbest bırakılıyor.

Örnek:
 
<%
Application.Lock
Application("ziyaretciler")=Application("ziyaretciler")+1
Application.Unlock
%>
Sayfa bugüne kadar 
<%=Application("ziyaretciler")%> kere ziyaret edildi!
Şekil III.66 lock ve unlock metotlarıyla ilgili örnek kod parçacığı

III.5.5.5 Onstart ve Onend Olayları

Application_onstart olayı web uygulamanızdan, ilk.asp dosyası çagrıldığı zaman aktif olur. Application_onend olayı ise web sunucunuzun kapatıldığı zaman tetiklenen olaydır. Application olayları global.asa da tanımlanır.

Kullanımı:
 
<script language="vbscript" runat="server">
Sub Application_OnStart
. . . 
End Sub
Sub Application_OnEnd
. . . 
End Sub
</script>
Şekil III.67 onend ve onstart olaylarının kullanım formatı

Şekil III.98’de verilen örnekte, toplam ziyaretçi sayısı hesaplanarak ekranada yazdırılır.

Örnek:

<script language="vbscript" runat="server">
 Sub Application_OnEnd()
 Application("toplamziyaratci")=Application("ziyaretci")
 End Sub

Sub Application_OnStart
Application("ziyaretci")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("ziyaretci")=Application("ziyaretci")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("ziyaretci")=Application("ziyaretci")-1
Application.UnLock
End Sub

</script>
Çıktı olarak ekranda göstermek için aşağıdaki kodları kullanabilirsiniz

<script language="vbscript" runat="server">
 <html>
<head>
</head>
<body>
<p>
Şuanda <%response.write(Application("ziyaretci"))%>
</p>
</body>
</html>
Şekil III.68 onend ve onstart olaylarına ilişkin kod parçacığı


III.5.6 Server Nesnesi

Web Server, asp için bir nesnedir. Server nesnesi server’ın özellik ve metotlarına erişim sağlanmak için kullanılır. Aşağıda metotları, özellikleri tanımlanmıştır. Tablo III.8’de server nesnesinin mototları ve özellikleri verilmiştir.










Tablo III.8 server nesnesinin metotları ve özellikleri
Özellikleri
Açıklama
ScriptTimeOut
Scriptler’in çalıştırılması süresini belirler.
Metotları
Açıklama
CreateObject(type_of_object)
Sunucu nesne örneği oluşturur
Execute(yol)
Asp sayfasında başka bir asp sayfası çalıştırmaya izin verir.
GetLastError()
Serverda oluşan en son hatayı tanımlar.
HTMLEncoder(string)
HTML kodları sitemizde göstermek istediğimizde HTMLEncode metodunu kullanırız.
MapPath(yol)
Dosyamızın konum bilgisini scriptlerimizde kullanabiliriz
Transfer(yol)
Asp sayfasının başka bir Asp sayfasına transfer edilmesi için kullanılır
URLEncode(string)
 Verilen ifadeyi URL kodlamasına çevirir.
  
III.5.6.1 CreateObject Metodu

               Serverda bulunan nesnenin bir örneğini oluşturur. Oluşturulan nesne örneğinin metotlarını ve özelliklerini kullanabilir. Sık sık createobject ile nesne oluşturmak yerine global.asa bir kere oluşturmak daha kullanışlı olur. Server nesnesinin bir örneği oluşturulmadan metotları veya özellikleri kullanılamaz. Şekil III.69’da kullanım formatı verilmiştir.

Kullanımı:
 
Server.CreateObject(nesne adı)
Şekil III.69 createobject metodunun kullanım formatı

               Şekil III.70’deki örnekte bir recordset objesi oluşturulur ve özellikleri ,metodları kullanılabilir hale getirilir.

Örnek:
 
set rs=server.CreateObject ("Adodb.Recordset") ’nesne oluşturuluyor……
                                              rs.ActiveConnection=Bag
                                              sorgu="select from uyeler where id="&id&""
                                              rs.open"uyeler",bag,3,2
                                              rs.addnew
                                              rs.fields("kullanici_adi")=kullanici_adi
                                              rs.fields("sifre")=sifre
                                              rs.fields("ad")=ad
                                              rs.fields("soyad")=soyad
                                              rs.fields("meslek")=meslek
                                              rs.fields("mail")=mail
                                              rs.fields("tarih")=now()
<%=Application("ziyaretciler")%> kere ziyaret edildi!
Şekil III.70 createobject metoduna ilişkin kod parçacığı

III.5.6.2 HtmlEncode Metodu

HTML kodları sitede gösterilmek istedinildiğinde, htmlencode metodu kullanılır. Web browser html kodlarını gördüğü zaman yorumlamak isteyecektir ve göstermeyecektir. Bu sorunu server nesnesinin bu metoduy, ortadan kaldırılır. Şekil III.71 kullanım formatı erilmiştir.

Kullanımı:
 
Server.HTMLEncode(string)
Şekil III.71 htmlencode metodunun kullanım formatı .

               Şekil III.72’de verilen örnekte; htmlencode metodu kullanılarak, html kodları sayfada gösterilmiştir.

Örnek:
 
<body>
<% 
 response.write("html'nin <br> tagıyla bir alt satıra geçeriz")
%>
</body> 
 
Çıktı:
 
html'nin 

tagiyla bir alt satira geçeriz
 
Örnek:
 
<body>
<% 
response.write(server.HTMLEncode("html'nin <br> tagıyla bir alt satıra geçeriz"))
%>
 
Çıktı:
 
html'nin <br> tagiyla bir alt satira geçeriz
Şekil III.72 htmlencode metoduna ilişkin örnek kod

III.5.6.3 MapPath Metodu
Bu metot yardımıyla, dosyanın konum bilgisini scriptlerde kullanabilir. Amacı, mantıksal (sanal) yol bilgisini bir istemci tarayıcısı için kullanılabilir hale, yani sunucudaki fiziksel yola uygun hale getirmektir. Bu metot Session.OnEnd ve Application.OnEnd olaylarında kullanılmaz. Şekil III.73’de kullanım formatı verilmiştir.

Kullanımı:
 
Server.MapPath(path)
Şekil III.73 mapPath metodunun kullanım formatı .

ŞekilIII.74’de verilen örnekte; session.asp, session1.asp, /responsenesnesi/response.asp sayfalarının konum bilgileri mapPath metodu yardımı ile ögrenilir.

Örnek:
 
<body>
<% 
response.Write(server.MapPath("session.asp"))
response.Write(server.MapPath("session1.asp"))
response.Write(server.MapPath("/responsenesnesi/response.asp"))
%>
</body>
 
Çıktı:
 
C:\Documents and Settings\hanife\Desktop\ornek\servernesnesi\session.aspC:\Documents and Settings\hanife\Desktop\ornek\servernesnesi\session1.aspc:\inetpub\wwwroot\responsenesnesi\response.asp
Şekil III.74 mapPath metoduna ilişkin örnek kod

III.5.6.4 Trasfer Metodu

Asp sayfasının başka bir Asp sayfasına transfer edilmesi için kullanılır. Şekil III. 75 kullanım formatı verilmiştir.

Kullanımı:
 
Server.Transfer(path) 
Şekil III.75 trasfer metodunun kullanım formatı .

               Şekil III.76 verilen örnekte; server5.asp sayfası server6.asp sayfasına transfer edilir.

Örnek:
 
Server5.asp sayfası
 
<body>
<% 
session("ad")="hanife"
session("soyad")="doğanay"
session("yas")="21"
session("En sevdiği şarkıcı")="jay sean"
session("En sevdiği şarkı")="stolen"
server.Transfer("server6.asp")
%>
</body>
 
Server6.asp sayfası
 
<body>
<% 
response.write("bu sayfada session5.asp içeri gösterilecektir.<br>")
for each x in session.Contents
response.write(session.Contents(x)&"<br>")
next
%>
</body>
 
Çıktı:
 
bu sayfada session5.asp içeri gösterilecektir.

hanife

doganay

21

jay sean

stolen
 
Şekil III.76 transfer metoduna ilişkin örnek kod
 
III.5.7 Error Nesnesi
Asperror nesnesi, asp script veya asp.dll tarafından oluşan hataların yakalanması için kullanılır. Asperror nesnesi Server.GetLastError metodu gelen hataları yakalayarak, kullanıcıyı standart hataların açıklandığı sayfalara yönlendirmek için kullanılabilir.
               ASP 3.0 ve IIS 5 de gelen Error nesnesi, hataları yönetmemize olanak sağlar. Asp kodları yazarken ufak hatalar veya kodları değiştirirken hata oluşabilir.
Çok küçük bir hata bile oluşsa sayfanın işlenmesi durdurulur ve hata mesajı çıkar.
Bu tür hata mesajlarını kullanıcıya göstermeye bilirinir veya hata raporu şeklinde çıktı verebilir.Bu tür hata kontrollerini error nesnesi ile sağlanır. Bu özellikler sadece okunabilir.

               ASP sayfasının başına  <% On Error Resume Next  %> yazılırsa, hata kısmı boş bırakılır.Bu hata mesajlarını düzenli bir şekilde ekrana yazmak için error nesnesinin özelliklerden faydalanabinir. Tablo III.8’de özellikleri verlimiştir. Özellikler sadece Server.GetLastError() metodu ile kullanılabilir. Error nesnesinin özelliklerinin kullanım formartı şekil III.77 verilmiştir.

 Tablo III.8 error nesnesinin özellikleri
Özellikleri
Açıklama
ISS tarafında oluşan hata komutunu geri döndürür.
ASPDescription
Oluşan hata ASP ile alakalıysa detaylı bir açıklama döndürür.

Category
Hatanın kaynağını döndürür.

Column
ASP sayfası içinde hataya sebep olan kodlamanın sütun pozisyonunu döndürür.
Description
Hata hakkında kısa bir açıklama döndürür.

File
Hata oluşan ASP dosyasının yolunu döndürür.
Line
 Hatanın kaçıncı satırda oluştuğunu döndürür.

Number
Standart COM hata numarası döndürür.
Source
Hataya sebep olan kodlar okunabiliyorsa bu kodları döndürür.



Kullanımları:
 
ASPError.ASPCode()
ASPError.ASPDescription()
ASPError.Category()
ASPError.Column()
ASPError.Description()
ASPError.File()
ASPError.Line()
ASPError.Number()
ASPError.Source()
 
Şekil III.77 error nesnesinin özelliklerinin kullanım formatı .











SONUÇ





Ağ tabanlı eğitim, temel olarak öğrenciye istediği zamanda, istediği yerde ve istediği kadar ilgili konuyu öğrenme avantajı sunar. Böylece öğrenen günün herhangi bir zamanında veya ayın herhangi bir gününde eğitimin verildiği il, ülke veya buna benzer bir mekânda bulunmadan öğrenme isteğini karşılayarak kendi istediği zamanda daha kalıcı öğrenebilir. Yani zaman ve mekândan bağımsız öğrenme fırsatı vardır.[8]

İnternet üzerinden çalışan belli bir zamandan ve mekândan bağımsız ağ tabanlı öğrenme programları genelde e-öğrenme adıyla bilinmektedir. E-öğrenme programları öğrenme malzemesi, iletişim, öğrenciye destek, dönüt verme ve değerlendirme gibi eğitsel etkinliklerin elektronik yollarla yapıldığı yeni iletişim ve etkileşim kanallarından oluşmaktadır. Tartışma listeleri, ağ sayfaları, ek yazılımlar, e-posta, forum, ağ üzerinden çoklu ortam, sanal sınıf, telekonferans ve video konferans, dijital-analog televizyon, telefon, ağ üzerinden CDROM ve DVD gibi ortamlar öğreneme faaliyetlerinin gerçekleşmesini sağlayan bazı araçlardır.[9]

 E-eğitimde öğrenen yalnızdır. Bu da öğrenenin yaşam boyu öğrenme becerisi geliştirmesi için bilgilere farklı yollardan ulaşarak edinebilmesi ve bu bilgilere kendi kendine anlamlandırarak öğrenebilmesi demektir. Bilgiye ulaşmada mobil teknolojiler öğrenene esnek bir ortam sağlayarak zamandan tasarruf etmesini sağlayabilir. [8]

Bu çalışmada kullanıcılar asp öğrenirken, zamandan ve mekândan bağımsız olarak istedikleri zamanda istedikleri yerde bilgiye ulaşabilmektedirler. Kendi bilgilerini sınamak için online testlerden yararlanarak, bilgi düzeylerini ölçebilmektedirler.



















































Hiç yorum yok:

Yorum Gönder