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")%> </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. Action, Formun
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
|
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
%>
|
Ş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("
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
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 : 2057Saatiniz...: 22/01/2007 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(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(
|
Arabic(
|
||
Arabic(U.A.E.)
|
Arabic(
|
||
Basque
|
Belarusian
|
||
Bulgarian
|
Catalan
|
||
3076
|
Chinese(
|
Chinese(PRC)
|
|
4100
|
Chinese(
|
Chinese(
|
|
Croatian
|
Czech
|
||
Danish
|
Dutch(Belgian)
|
||
Dutch(Standard)
|
9
|
English
|
|
English(Australian)
|
English(
|
||
English(British)
|
English(Canadian)
|
||
English(
|
English(
|
||
English(
|
English(
|
||
English(
|
English(
|
||
English(
|
Estonian
|
||
Faeroese
|
Farsi
|
||
Finnish
|
French(Belgian)
|
||
French(Canadian)
|
French(
|
||
French(Standard)
|
French(Swiss)
|
||
Gaelic(Irish)
|
Gaelic(Scots)
|
||
German(Austrian)
|
German(
|
||
German(
|
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(
|
Russian
|
||
Russian(
|
Sami(Lappish)
|
||
Serbian(Cyrillic)
|
Serbian(Latin)
|
||
Slovak
|
Slovenian
|
||
Sorbian
|
Spanish(
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish(Mexican)
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Spanish,Spain-Modern
Sort
|
||
Spanish(
|
Spanish(
|
||
Spanish(
|
Sutu
|
||
Swedish
|
Swedish(
|
||
Thai
|
Tsonga
|
||
Tswana
|
Turkish
|
||
Ukrainian
|
Urdu
|
||
|
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.
Ç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