Sunucu Taraflı Geliştirme Ortamı
ASP Dinamik
içerik sunmak için kullanıcının tercih ettiği Web tarayıcı ile sınırlı
değilsiniz, sunucu taraflı bir teknoloji olan ASP ile Web tarayıcısından bağımsız
değişken sayfalar hazırlayabilirsiniz.
Temel HTML kodlarının kullanımının
anlatılmasını uzun süre önce tamamladık, bir kaç ay ard ard yayınladığımız
kullanışlı JavaScript programcıkları ile de sayfalarınızın işlevini arttırmayı
amaçladık. Siz Web Okulu okuyucularının ufkunu genişletmek, yeni teknolojilerden
haberdar olmanızı ve kullanabilmenizi sağlamak için bu sayıdan itibaren öğrenmesi
zevkli ve gelecek vaadeden teknolojilere değineceğiz. Anlatmaya başlayacağımız ilk
teknoloji ASP. İki sayıdan az olmayan ASP yazımızı zevkle okuyacağınızı ve
uygulayacağınızı umuyoruz.
ASP NEDİR ?
Sunucu taraflı bir teknoloji olan ASP, (Active Server Pages/Aktif Sunucu Sayfaları)
kullanıcı tarafına etkileşimli, dinamik Web sayfaları göndermek için kullanılır.
ASP, Web programcılarına HTML, scripting ve kullanıcıdan bağımsız veritabanı
uygulamalarını özgürce kullanma fırsatı verir. ASP programlama ortamının özgür
olmasının sebebi tüm derleme işleminin sunucu tarafında bitmesi ve kullanıcının
sadece sonuçta oluşan HTML sayfalarını görmesidir.
Çok geniş bir kullanım alanı olan
ASP, scripting diye tabir edilen VBScript, JavaScript gibi her türlü ham kodu
kullanabilir, sunduğu kolay anlaşılır doğal dili ile orta derece HTML bilen kimseler
tarafından bile kolayca kavranabilir. Bir scripting dili olsa bile ASP, sunucu tarafında
uygulama çalıştırmanıza da izin verir. Web sunucunuza bağlanan kullanıcı sizin
tarafınızda neler olup bittiğini bilmezken kendisine gelen HTML formatındaki sonuca
baktığında yazdığınız ASP kodlarını değil, Internet sunucusunun onun için
hazırladığı HTML kodlarını görür.
ASP'nin Netscape Navigator / Internet
Explorer /Opera gibi Web tarayıcılarından bağımsız olmasının yanısıra en büyük
avantajlarından biri kullandığınız teknolojilerin, scriptlerin saklı kalmasıdır.
Normal şartlarda, dinamik içerik hazırlamak için HTML sayfasında emek dökerek
kullandığınız scriptler diğerleri tarafından "beğenilip" kolayca tekrar
kullanılabilirken ASP için böyle bir şey söz konusu değildir. Uyanık kullanıcılar
ASP sayfasını tıpkı başka bir dosya gibi bilgisayarlarına kaydetmek istediklerinde
ise Web sunucunuz bunu anlayacak ve yine sayfanın hazırlanmış halini kullanıcıya
sunacaktır.
ASP NASIL İŞLİYOR?
ASP arabiriminin işleyişi oldukça basit, sisteminize ASP eklentisini yüklediğinizde
Internet Information Server'ınızın zaten sahip olduğu scripting özellikleri işlemeye
başlıyor. İstemci tarafı sunucudan normal bir HTML sayfasını istediğinde, IIS bu
dosyayı sabit diskten çağırarak istemci tarafındaki Web tarayıcıya yollar. İstemci
tarafından yapılan istek bir ASP sayfasıysa IIS bunu sayfanın uzantısından anlayarak
ASP eklentisini devreye sokar. ASP eklentisi sayfa içindeki scriptleri yine IIS'a
çalıştırdıktan sonra oluşan HTML sayfasını istemci tarafındaki Web
tarayıcısına yollar, bu arada "kuzu" durumunda olan kullanıcının sunucuda
gerçekleşen işlemlerden haberi olmaz. ASP sisteminin dezavantajı Web sunucunuza daha
fazla yük getirmesidir. Normal bir HTML sayfasının sabit diskten alınarak sunulması
sunucuya fazla yük getirmezken ASP sayfalarının işlenmesi sunucunuzun değerli bellek
ve işlemci kaynaklarından daha fazla yararlanacaktır. Yukarıdaki işlemleri
anlatırken ASP'nin getirdiği en büyük avantajlardan biri olan veritabanı
kullanımına hiç değinmedik, ASP, sunucu üzerinde yüklü ODBC veritabanlarını
kullanabilir, şirketinize ait veritabanlarını Intranet'inize veya Internet'e açabilir.
ASP'Yİ NASIL KULLANMAYA
BAŞLAYACAĞIM?
Web sitenizin dilediğiniz bölümlerini ASP'ye göre düzenlemeden önce bir takım
şeyler yapmanız gerekiyor. Windows NT kullananlar öncelikle sistemlerine tamamen
ücretsiz olan Microsoft Internet Information Server (IIS) 3 veya 4'ü kurmalılar. IIS'ı
kurduktan sonra Microsoft'un sitesinden (http://www.microsoft.com/iis)
güncel bir sürümünü edebileceğiniz ASP eklentisini yüklemelisiniz. Internet
Information Server yapısı gereği bir Web uygulamasının kendisi üzerinde
çalıştırılabilmesi için uygulamanın çalıştırıldığı klasöre bu izninin
verilmiş olmasını ister. Bu yüzden ASP'lerin konulacağı klasörlere
"execute" hakkı verin, IIS execute hakkı verilmiş bir klasörün alt
klasörlerine de otomatik olarak bu hakkı tanır.
Web sayfalarını sunmak için Windows 95
işletim sistemi altında çalışan Personal Web Server'ı tercih edenler de ASP'yi hemen
kullanmaya başlamakta pek zorlanmayacaklar. ASP eklentisini yükleyip ilgili hakları
verdikten sonra hemen, vereceğimiz başlangıç örneklerini deneyebilirler. Web
sayfalarını Unix veya başka işletim sistemleri üzerinde tutan veya bir Web sunucusuna
sahip olmaksızın sayfalarını sunmak için ücretsiz servislerden faydalanan okurların
işi ise biraz daha zor.
Chilisoft (http://www.chilisoft.com/) adlı yazılım firması
değişik işletim sistemleri için ASP eklentileri sunuyor, ayrıca bir Web sunucusuna
sahip olmayanlar Internet'te ASP dosyalarını ücretsiz olarak sunan hosting
firmalarından faydalanabilirler. Altavista Web tarayıcısında "ASP hosting"
anahtar kelimeleriyle yapacağınız araştırma sizi bu firmalara ulaştıracaktır.
ASP NE İŞİME YARAYACAK?
Eskiden taş düşürtecek kadar zahmetli olan HTML formlarını değerlendirme işi ASP
ile "çocuk oyuncağı" haline getirilmiş, önceleri bu işi yapmak için CGI
(Common Gateway Interface) uygulamaları yazmış, hazır ve esnekliğe izin vermeyen tek
platformlu form değerlendirme programları kullanmış olabilirsiniz, Web sitenizi ASP
tabanlı bir hale getirdiğinizde tüm bunlardan kurtulmuş olacaksınız. ASP
yetenekleriniz geliştikten sonra sunucu üzerinde yüklü ODBC veritabanlarını kullanan
ActiveX uygulamaları yazmaya başlayabilirsiniz veritabanlarına bilgi yazabilir ve
okuyabilirsiniz. VBScript, JavaScript, PERL veya REXX gibi bir scripting dili hakkında
bilginiz varsa aynı zamanda ASP biliyorsunuz demektir çünkü ASP, IIS 4'ü veya
dışardan yüklenebilen modülleri kullanarak bu dilleri anlayabilir. ASP aynı zamanda
sunucu üzerinde çalışan Microsoft BackOffice ailesi uygulamalardan maksimum derecede
faydalanır, bu işleve sahip önceden hazırlanmış ASP modülleri başka sayfalar
içine gömülebilir.
ASP İLE PROGRAMLAMAYA BAŞLANGIÇ
Yukarıda ASP'ye kısa bir giriş yaptık, anlattıklarımızı pekiştirmek için
dilerseniz iki tane örnek verelim. ASP sayfalarını kullanabilmek için yukarıda
anlattığımız olayları gerçekleştirdiyseniz execute hakkı verdiğiniz bir klasörde
aşağıda kodlarını verdiğimiz ASP sayfalarını hazırlayın.
http://sunucu_ismi/klasor/asp_ismi.asp
komutunu kullandığınızda Web
tarayıcınız ASP kodlarının altında verdiğimiz HTML dökümlerini oluşturacaktır.
Sunucu üzerindeki ASP dosyasını çağırdığınızda boş bir sayfa geliyorsa Internet
Information Server'ınız üzerine ASP eklentisi yüklü değildir. Kodlar
çağrıldığında hata mesajı geliyorsa IIS'ınızın sürümü çok düşüktür veya
ASP kodlarını doğru olarak girmemişsiniz demektir.
1.Örneğimiz
ASP KODLARI
<HTML>
<HEAD><TITLE>
Script yardımıyla değişik ebatlarda yazılar...
</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<% for i = 3 to 7 %>
<FONT SIZE=<% = i %>>Biz biz idik biz idik otuziki kız
idik.</FONT><BR>
<% next %>
<BR>
</BODY>
</HTML>
KULLANICI TARAFINDA GÖRÜLEN
<HTML>
<HEAD><TITLE>
Script yardımıyla değişik ebatlarda yazılar...
</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=3>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=4>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=5>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=6>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=7>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<BR>
</BODY>
</HTML>
2. Örneğimiz:
ASP KODLARI
<html>
<title>ASP ile rasgele püf noktası...</title>
<%
' Sayfada göstermek üzere 1'den 10'a kadar bir püf noktası seç.
Randomize
TipNumber = Int(Rnd*10)
' İçinde 10 adet püf noktası olan dosyayı aç
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Instream = FileObject.OpenTextFile (Server.MapPath ("/deneme") &
"\puf.txt", 1, FALSE, FALSE)
' Göstermek istediğim püf noktasına kadar olanları atla
For i = 1 to TipNumber -1
InStream.SkipLine()
Next
' Dosyadan alınan satırı PufNoktasi değişkenine ata.
PufNoktasi = Instream.ReadLine
%>
<FONT FACE="Verdana" SIZE=4><B>
<%= PufNoktasi %></B></FONT>
</html>
KULLANICI TARAFINDA GÖRÜLENLER
<html>
<title>ASP ile rasgele püf noktası...</title>
<FONT FACE="Verdana" SIZE=4><B>
Rasgele püf noktası * 5</B></FONT>
</html>
FORM İÇERİĞİNİ ASP'YE NASIL YOLLARIM?
HTML formları Web sitelerinde kullanıcıdan veri almak için kullanılan yegane yoldur.
ASP teknolojisini en önemli görevlerinden biri de form verilerini saklamak, hatırlamak
ve değerlendirmektir. İçeriğinde bir form olan ASP sayfaları tabii ki yapılabilir,
ama HTML sayfalarındaki verilerin, bir yardımcı programa veya script'e ihtiyaç
duyulmaksızın herhangi bir ASP dosyası tarafından değerlendirilebileceğini bilmek
sanırım hoşunuza gidecektir.
ASP sayfalarının sunucunuzda çalışan
veritabanı modülünü kullanarak veritabanlarına erişebileceğini ve buradaki verileri
Web'e aktarabileceğini söylemiştik. Form içeriğine girilen verileri ASP sayfalarına
yollamak oldukça basittir sadece ASP sayfasında bir değişkene form kontrollerinden
birinin ismini atamak yeterli. Aşağıdaki örnekleri inceleyince parametre mantığını
daha iyi anlayacaksınız.
GET ile hazırlanmış formlarda
değişkenlerin toplam karakterinde bir sınırlama vardır. Bunun yanısıra geçtiğiniz
parametreler Web tarayıcınızın URL kutusunda görülecektir. ASP Script'inin bu tip
formlardaki verileri alabilmesi HTML kısmında ve script içinde aşağıdaki gibi kodlar
kullanılması gerekir:
Formu oluşturmak için:
<form action="deneme.asp"
method=GET>
.... Diğer form üyeleri ....
<input type=submit><input type=reset>
</form>
ASP Script'inde okumak için:
<%degisken=request.querystring("form_bolgesi")%>
POST ile hazırlanmış formlarda ise karakter ve uzunluk sınırlaması GET kadar
sınırlı değildir. Web tarayıcınız geçtiğiniz değişkenleri adres penceresinde
göstermeyecektir. ASP Script'inin bu tip formlardaki verileri alabilmesi HTML kısmında
ve script içinde aşağıdaki gibi kodlar kullanılması gerekir:
Formu oluşturmak için:
<form action="deneme.asp" method=POST>
.... Diğer form üyeleri ....
<input type=submit><input type=reset>
</form>
ASP Script'inde okumak için:
<%degisken=request.form("form_bolgesi")%>
ASP ile başka ne gibi
eklentiler kullanabilirim?
ASP İLE BİLEŞEN KULLANMA
Microsoft'un sunucu teknolojisi ASP için bir çok ikinci parti bileşen bulunuyor. ASP
sayfaları ile uyum içerisinde çalışarak sonuç sayfalarının oluşturulması, Web
sayfası sahiplerine işlenmiş bilgi aktarılması gibi işlere yarayan bileşenlerden en
popüler olanları ASPMail ve RoboHTTP. Server Objects firmasının bu iki ürünü,
sayfadaki formların içeriğinin kullanıcıya e-mail olarak kullanılması, misafir
defteri oluşturulması ve bir çok değişik bilginin bir sayfada toplanması gibi
işlemleri kolayca hallediyor. CGI Script yazmak veya NT sunucularına bir servis daha
yükleyerek meşgul etmek istemeyenler http://www.serverobjects.com/
adresindeki Web sitesini ziyaret ederek daha geniş bilgi edinebilirler.
VERİTABANLARINI ASP İLE ZAHMETSİZ
NASIL KULLANIRIM?
Kurumunuzun veritabanını ASP teknolojisini kullanarak Web sayfalarından ulaşılır ve
değiştirilebilir hale dönüştürmek istiyorsunuz. Bunu yapmak için işi bilen bir
kişinin saatlerce bilgisayarın başında oturup veritabanındaki field'leri girmesi,
sorgulamaları programlaması gerekmiyor. Microsoft'un, Internet teknolojilerinin
programlanmasını ve kullanımını kolaylaştıran ürünü Visual InterDev bir Access97
veritabanını alarak bunu kolayca Web'den erişilebilecek duruma getirebiliyor. Bu işi
yapmak için kullanımı inanılmaz kolay sihirbazlar içeren program hakkında daha fazla
bilgi için http://www.microsoft.com/vinterdev/
adresine bağlanın.
OTURUM NEDİR?
Internet Information Server'ın en vurucu özelliklerinden olan "oturum"dan ASP
teknolojisi sonuna kadar faydalanır. Bir kullanıcının Web sitenize bağlandığı
andan Web sitenizden ayrıldığı ana kadar olan zaman dilimine "oturum/
session" adı verilir. Bu süre içerisinde sunucunuzdaki ASP eklentisi
kullanıcıyı takip eder ve yaptığı hareketleri, yolladığı tüm bilgileri kontrol
eder. Örneğin bir kullanıcının alışveriş sepetine koyduğu tüm ürünler ASP
eklentisi tarafından sunucunun belleğinde tutulur, kullanıcı siteden çıktığı anda
bellektekiler eğer aksi belirtilmediyse oturum sonlandığı için silinir. Oturum takibi
işini bir ISAPI (Internet Server Application Programming Interface) filtresi olan Cookie
Munger ile yapabilirsiniz, bu arabirim aynı zamanda kullanıcıya yolladığı çerezler
ile eğer silinmemişse sunucu üzerinde bulunan bir oturumun devamını da sağlayabilir.
Sunucuya oturumu hatırlatmak amacıyla
kullanıcıya yollanan çerezlerin hiç bir zararı yoktur. Aynı zamanda yollanılan
çerezlerin içinde sadece bir hatırlatma numarası olduğundan kullanıcının kendi
bilgisayarında sunucuya ait olan bilgileri ele geçirmesi mümkün değildir, bu yüzden
çerezler bir güvenlik açığı oluşturmaz.
Ücretsiz olan Cookie Munger hakkında
daha çok bilgi için http://www.microsoft.com/workshop/server/toolbox/cookie.asp
adresini kullanabilirsiniz.
Kod örnekleri:
WEB SUNUCUMA KİMLER BAĞLI?
Yukarıda IIS'ın kendisine bağlı her bir kullanıcıyı takip ettiğini söylemiştik.
ASP Script ile Web sunucunuza bağlı olan kullanıcıları ve hangi sayfalarda
bulunduklarını kolayca ortaya çıkarabilirsiniz. Aşağıdaki kodları NT4 - Service
Pack 3 yüklü ve Internet Information Server 4'e sahip bir sunucunun "execute"
hakkı verilmiş bir klasöründen çalıştırdığınızda size sunucunuzdaki
kullanıcıların IP adreslerini ve şu anda bulundukları sayfaları söyleyecektir.
Sayfayı her seferinde yenilemenize gerek yok, ASP sayfası bu işi kendisi hallediyor...
<!-- #INCLUDE
VIRTUAL="/includes/tracker.asp" > -->
<%
MyServer=Request.ServerVariables("SERVER_NAME")
MyPath=Request.ServerVariables("SCRIPT_NAME")
MySelf="HTTP://"&MyServer&MyPath
%>
<html>
<head>
<meta HTTP-EQUIV="REFRESH" CONTENT="20;<%=MySelf%>">
</head>
<body BGCOLOR="#FFFFFF">
<%
Application.Lock
Set TempStats=Application("stats")
Application.Unlock
%>
<center>
<b>Toplam Kullanıcı:</b> <%=TempStats.Count %>
<table BORDER="1" CELLPADDING="10" bgcolor="#6699cc">
<tr><th>Kullanıcı</th><th>Bulunduğu sayfa</th></tr>
<%
TempItems=TempStats.Items
TempKeys=TempStats.Keys
For i=0 to UBOUND(TempKeys)
%>
<tr><td><%=Tempkeys(i)%></td><td><%=TempItems(i)%></td></tr>
<%
Next
%>
</table>
</center>
</body>
</html>
ZAMAN ETİKETİNİ FORMATLAMAK
Aşağıdaki ASP script'i o anki tarihi 5 ayrı formatta yazar. ASP scriptinin tarih
formatlama özelliğini göstermek için verdiğimiz örnek basit bir döngü ve fonksiyon
tanımlanmasından oluşuyor. Her tarihi yazdıktan sonra bir paragraf boşluk veren ve
ardından bir çizgi çeken script'i çalıştırdıktan sonra en çok beğendiğinizi
kullanmaya başlayabilirsiniz.
<html><head>
<title>Zamanı formatlamak</title>
</head><body bgcolor="#FFFFFF"><html>
<%
response.write "<hr>"
for counter=0 to 4
currentdate=now()
response.write "Bu gün..." & "<br>"
response.write currentdate & "<P>"
select case counter
case 0
whichformat="vbgeneraldate"
case 1
whichformat="vblongdate"
case 2
whichformat="vbshortdate"
case 3
whichformat="vblongtime"
case 4
whichformat="vbshorttime"
end select
response.write "FormatDate(now()," & whichformat & ")="
response.write Formatdatetime(currentdate,counter) & "<P><HR>"
next%>
</body></html> |