Anda di halaman 1dari 45

T.C.

CELAL BAYAR NVERSTES TURGUTLU MESLEK YKSEKOKULU BLGSAYAR TEKNOLOJS VE PROGRAMLAMA

ASP

DERS NOTU

Seval ZBALCI seval.ozbalci@bayar.edu.tr MANSA 2003

NDEKLER
NDEKLER ...................................................................................... 2 ASP....................................................................................................... 4 ASP'YE BALARKEN.............................................................................. 4 ASP NEDR? ........................................................................................ 4 ASP N NELER GEREKLDR? ............................................................... 4 Kiisel Web Server (PWS) Kurulumu .................................................... 5
PWS Kurulurken Hata Verirse...................................................................... 7

ODBC.............................................................................................. 7 INTERNET'TE ASP NASIL LER?........................................................... 10 ASP NESNELER................................................................................. 14 Application/Uygulama Nesnesi .......................................................... 14
Application.Contents.................................................................................16 Application.StaticObjects ...........................................................................17 Application.Contents.Remove.....................................................................18 Application.Contents.RemoveAll .................................................................19 Application.Lock.......................................................................................19 Application.UnLock ...................................................................................19 Application_OnStart..................................................................................19 Application_OnEnd ...................................................................................20

ObjectContext/Nesne Balam .......................................................... 21


ObjectContext.SetAbort ............................................................................23 ObjectContext.SetComplate .......................................................................23 ObjectContext/OnTransactionAbort .............................................................23 ObjectContext/OnTransactionCommit..........................................................23

Request/Talep Nesnesi .................................................................... 24


Request.TotalBytes...................................................................................24 Request.ClientCertificate / Kullanc Sertifikas ..............................................24 Request.Cookies ......................................................................................24 Request.Form ..........................................................................................25 Request.Querystring .................................................................................26 Request.ServerVeriables ...........................................................................27 Request.BinaryRead .................................................................................30

Response....................................................................................... 30
Response.Buffer.......................................................................................30 Response.Expires .....................................................................................31 Response.IsClientConnected ......................................................................32 Response.Status ......................................................................................32 Response.Cookies ....................................................................................32 Response.Clear ........................................................................................33 Response.End ..........................................................................................33 Response.Flush........................................................................................33 Response.Redirect....................................................................................33

Server........................................................................................... 34
Server.ScriptTimeout ................................................................................34
2 :.

Server.CreateObject................................................................................. 35 Server.Execute ........................................................................................ 35 Server.GetLastError ................................................................................. 36 Server.HTMLEncode ................................................................................. 36 Server.MapPath ....................................................................................... 36 Server.Transfer ....................................................................................... 36 Server.URLEncode ................................................................................... 37

Session ......................................................................................... 37
Session.Codepage.................................................................................... 38 Session.SessionID.................................................................................... 38 Session.Timeout ...................................................................................... 38 Session.Contents ..................................................................................... 39 Session.StaticObjects ............................................................................... 39 Session_OnStart ...................................................................................... 40 Session_OnEnd ....................................................................................... 41 Session.Abandon ..................................................................................... 42 Session.Contents.Remove ......................................................................... 42 Session.Contents.RemoveAll...................................................................... 43

ASP VE VERTABANI (DATABASE) ...................................................... 44


I. Yntem (ODBC DSN kullanarak) ............................................................. 44 II. Yntem (ODBC DSN'den bamsz) ......................................................... 44 III. Yntem (SQL Server) .......................................................................... 44

KAYNAKLAR........................................................................................ 45

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO

.: 3

ASP
ASP'YE BALARKEN
Web taraycnzn yetenekleri ile snrl olan sayfalarnz, taraycnzdan bamsz dinamik bir hale getirmenin yolu, ASP teknolojisini bir an nce kavramaktan geiyor. Korkulduu gibi ASP yeni bir programlama dili deil, aksine HTML ve scripting kodlarn i ie bulunduran web sayfalarn, sunucu tarafnda altrma tekniidir. Yalnz bu teknii tam olarak anlayabilmek iin Webin nasl altn, Server (Sunucu) ve Client (stemci) ilikisinin nasl yrdn bilmek gerekiyor. Ayrca Jscript, Vbscript, Perl gibi scripting dillerinden herhangi birine ainalk veya en azndan nesneye ynelik bir programlama dili, rnein. Visual Basic kullanm olmak ve HTML kodlarna yabanc olmamak balang iin yeterli olacaktr.

ASP NEDR?
Active Server Pages kelimelerinin ba harflerinden oluan ASP, sunucu tarafl gelitirme ortamdr. Dosya uzants .asp olan ASP sayfalarnda HTML ve Script dili bir arada kardee bulunabilmektedir. ASP sayfalarnn almasn ksaca yle izah edebiliriz: Web taraycnza .asp uzantl bir adres girildiinde, normal artlar altnda Web Server bunun ASP olduunu anlar ve dosya ierisindeki script kodlarn iletir. Kodlar iletildikten sonra kodun sonucunda oluan HTML kodlar ise kullancnn taraycsna geri yollanr. ASP teknolojisi sayesinde, sayfalarnza koyacanz HTML, VBScript kodlar ve veritaban uygulamalar, Serverda icra edileceinden, ziyaretinin Browsernn rnein VBScripti tanmayan Netscape olmas, hi nemli deildir. ASP bu zgrl, kodlarn server tarafnda iletilmesine borludur. Kullancnn ekrannda sadece kodlarn iletilmesi sonucunda oluan HTML sayfas grntlenir. ASPnin bir avantaj da, kullanlan kodlarn bakalar tarafndan kopyalanamamasdr.

ASP N NELER GEREKLDR?


ASP, sunucu tarafl uygulama gelitirme ortam olduu iin Web Servern varlna ihtiya duyar. Microsoftun ASP iin kullanabileceiniz iki adet Web Server uygulamas var. Bunlar Personal Web Server (PWS) ve Internet Information Server (IIS)dir. Ayrca ASP ile veritaban uygulamalar da gelitirelim abi diyorsak, veritabanlar ile balanty salayan ODBC uygulamasnn ykl olmas gerekiyor. Web sayfalarnz kendi bilgisayarmdan yaynlarm ve gnde 5-10 hite razym, makinemde zaten Windows 98 iletim sistemi ykl derseniz PWSyi tavsiye ederiz. Yok eer baba
4 :.

gibi bir sisteminiz var ve her gn yksek hit almak istiyorsunuz tabii ki IIS diyoruz. altnz platform Windows 95, 98, NT4 WorkStation veya NT4 Server ise sisteminize Web Server programn kendiniz kurmalsnz. Hayr Windows 2000 Server kullanyorsanz, bu ilemin otomatik olarak gerekletii aklnzda bulunsun. Sayfalarnz kendi kendinize deneyebilmek iin mutlaka bilgisayarnza Web Server kurmalsnz. imdi Web Servern nasl kurulduundan ve hangi ayarlamalarn yaplmas gerektiinden ksaca bahsedelim...

Kiisel Web Server (PWS) Kurulumu


Sisteme Web Server

kurmazdan nce bilgisayarnza bir ad tanmlanm olmas gerekiyor. Eer bilgisayarnzn ad olup olmadndan emin deilseniz, masastndeki A Komular zellikler karnza simgesine seeneini kan sa tklayp, setiinizde pencerede

Tanmlama sekmesini tklayn. Bu sekmedeki Bilgisayar Ad hanesi bo ise istediiniz ad girip gnl rahatlyla tamam dmesine basabilirsiniz. Buraya yazdnz isim aklnzn bir ucunda bulunsun. Bu ismi daha sonra web sayfamza eriirken kullanacaz. Windows 98e Kiisel Web Server kurmak iin iki yol izleyebilirsiniz. Windows 98 CD-ROMunda Add-ons klasrndeki PWS dizininde Kur.exeyi tklayn veya Windows NT Option Pack CD-ROMunda Default.htmi an. Bilgisayarnzn Windows 98 ile altn alglayacak olan program size Personal (kiisel) Web Server (PWS) kurmay nerecektir. Kiisel Web Server kurarken her iki durumda da ikinci diyalog kutusunda Minimum/En az veya Typical/Tipik seeneini deil, Custom/zeli sein ve alacak yeni diyalog kutusunda Microsoft Data Access Components (MS Veri Eriim Bileenleri) satrna iaret koyarak, Alt Bileenleri Gster dmesini tklayn. Alacak seme kutusunda ise ADO Documentation satrna iaret koyun. Bu belgelerden daha sonra veri-ynlendirmeli Web Uygulamas yaparken yararlanacaz. Kiisel Web Server kurulduktan sonra bilgisayar yeniden balatmak gerekir.

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO

.: 5

Windows NT4.0 Workstation veya Servera IIS4.0 kurmak iin Option Pack CDROMundaki default.htmi altrmanz ve alacak Browser penceresinde IISi kurma seeneini tklamanz yeter. Burada da ADO Documentation sabit diskinize aktarabilmek iin gerekli seenei iaretleyin. Windows 98e Kiisel Web Server kurulduunda Masastnde (Publish) adl bir ise IIS belirecektir. sistemlerinde mensnde blmne biriyle altrn. Kiisel Web Serverda Personel Web Server Manager (Ynetici) kutusu aldnda soldaki ara ubuunda Yneticinin eitli blmlerine gitmeniz iin gereken gezinme simgelerini greceksiniz. imdi, alan ana pencerede iki unsura dikkat edin: 1. Kiisel Web Servernzn ad. Bilgisayarnzn ad buraya Server ad olarak yazlm olmal. Biraz sonra, Internete koymadan nce snayacamz ASP sayfalarn arrken, Browsern adres kutusuna burada grdmz ad yazacaz. 2. Kiisel Web Servern bilgisayarmzda sabit diskteki gerek adresi. Bu, sizin Kiisel Web Servernzn kk (root) dizinidir. Bu genellikle C:\inetpub\wwwroot klasrdr. Kiisel Web sitesi yaparsanz, sitenin gerektirdii btn dizinleriniz ve dosyalarnz burada grdnz dizinin iinde olmaldr. Yapacamz ASP dosyalarn ite bu dizinin iine koyacaz. Bunlar bir kenara not ettikten sonra, soldaki ara ubuunda Gelimi simgesini tklayn; ortadaki pencerede sanal dizinlerinizi gryorsunuz. Bunlardan Homeu sein ve sadaki zellikleri dzenle dmesini tklayn. Ana dizinin okuma, yrtme ve Yaymla simge NT Balat Manager veya IISi Programlar

satr eklenir. Bu yollardan PWS

makro eriim haklarnn iaretli olmasna dikkat edin. lerde kendinize Kiisel Web Servernzn kk dizininde yeni bir dizin

6 :.

oluturursanz (rnein resimler gibi) ve iine sitenizle ilgili dosyalar koyarsanz, Gelimi penceresinde Ekle dmesini tklayarak bu gerek dizini de sitenin sanal dizinlerinden biri haline getirmeniz gerekir. Gerek dizinin ad XYZ bile olsa, sanal dizin haline getirirken istediiniz sanal ad verebilirsiniz. Ama unutmayn, Browsern adres hanesine gerek dizin adn deil sanal dizin adn yazmanz gerekir. Bu ilemleri IISte deiik aralar ve diyalog kutularyla, fakat temel ilkeler itibariyle ayn ekilde yapabilirsiniz. NT4 sistemlerine IISi kurmadan nce, Service Pack 3 uygulayn; Internet Explorer 5i kurun. Elinizde varsa Service Pack 4, 5 veya 6y en son uygulayn. Bu noktada, ASP sayfalarnz snayacanz bilgisayarda Microsoft Internet Explorer programnn kurulu bulunmasnn art olmadn hatrlatalm. ASP sayfalarnz Netscape ile de snayabilirsiniz.

PWS Kurulurken Hata Verirse


Windows 98e PWS kurarken, programn Microsoft Transaction Server

blmne ilikin sistem kaytlar yaplrken, iki hata mesaj ile karlaabilirsiniz (0x80004005 ve 0xfee662). Bu, orijinal Windows 98 CD-ROMundaki PWS Kur programnn, Windows Registry dosyasnn byk olmas halinde hata vermesinden kaynaklanyor. Byle bir durumla karlarsanz, Bilgisayarm/Denetim Masas/Program Ekle Kaldr araclyla, Personel Web Server kaldrn. Bilgisayar kapanp aldktan sonra, Windows 98 CD-ROMunda Add-ons/PWS dizinindeki btn dosyalar, sabit diskinizde Temp dizinine kopyalayn. Sonra http://support.microsoft.com/support/kb/articles/q246/0/81.asp adresinde Download Mstsetup.dll satrn tklayn. Mssetup.exe adl bir dosya bilgisayarnza indirilince; bu dosyay iki kere tklayn ve dosyann geniletilecei yer olarak C:\Tempi gsterin; program Mstsetup.dll dosyasnn deitirilmesini isteyip istemediinizi sorduu zaman Tamam tklayn. imdi, C:\Tempdeki Kur.exe (Windows CD-ROMunuz ngilizce ise Setup.exe) programn iki kere tklayn. PWS imdi hatasz kurulacaktr.

ODBC
Kollar svayp, ASPye kodu yazmaya balamadan nce yapmamz gereken bir i daha var: ASP sayfalar gelitirme ortammzda, ODBC (Open Database Connectivity, Ak Veritaban Balants) olmas gerekir. Windows 98, 95 (OSR2) veya NT4.0 iletim sisteminizde Denetim Masasnda ODBC, ODBC32 veya ODBC Veri Kaynaklar (32 Bit) adl bir simge gryor

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO

.: 7

olmalsnz. Bunu an, Sistem DSN sekmesini ve alan pencerede greceiniz Ekle dmesini tklayn. Buradaki Access, dBase, Excel, FoxPro, Paradox srcleri sitesinden 4.00.3711.08 veya daha byk m? Deilse, Microsoftun (http://www.microsoft.com/data/download.ht m) Microsoft Data Access Components (srm 2.1.1.3711.11 Windows 2000 GA, 6.2 MB) gncelleme bunu dosyasn indirin ve sisteminizi gncelletirin. kurulu sistemlerde yapmaya gerek yok. Bylece sisteminiz, ilerde yazacamz veri-ynlendirmeli Web uygulamalar iin hazr hale gelmi olacaktr. ASP ile Dnyaya Merhaba Diyelim... imdi ilk ASP sayfamz yapalm ve bununla kiisel Web Server programnn alp almadn snayalm. Buraya kadar anlam olduunuz gibi ASP sayfas da HTML gibi dz yaz dosyasdr; dolaysyla beendiiniz bir dz yaz program ile ASP yazabilirsiniz. imdi an en beendiiniz dz yaz programn ve balayn yazmaya. Eer kelime-ilemci kolaynza gidiyorsa, dosyay ASCII veya ANSI biiminde kaydetmeyi unutmayn. ASP sayfalarnda server'n ileyecei ASP kodlar <%...%> iaretleri arasnda yer almaktadr. Verdiimiz rneklerde bu noktaya dikkat edin. Bata sylediim gibi ASP ve HTML kodlar iie kullanlmaktadr, kafanz karmasn.... rnek: Merhaba.asp <%@ LANGUAGE = VBScript %> <% Option Explicit %> <!-- lk Satr VBScript kullanld server'a bildirilir. --> <!--kinci satrdaki komut girildiinde hibir deiken Dim komutu ile tanmlanmadan kullanlamaz. --> <HTML> <HEAD> <TITLE>ASP</TITLE> </HEAD> <BODY BGCOLOR="White" TOPMARGIN="10" LEFTMARGIN="10"> <!-- Balk gsterilir. --> <FONT SIZE="4" FACE="ARIAL, HELVETICA"> <B>ASP ile lk rneimiz</B></FONT><BR>
8 :.

<HR SIZE="1" COLOR="#000000"><H1><CENTER> <% response.write "Merhaba Dnya!" ' Taraycmza server tarfndan " Merhaba Dnya!" yazlr. --> %> </H1> <H2>Bugn:<% Response.Write(Date) %></CENTER></H2> <!-- Taraycmza server'daki tarih ne ise o yazlr. --> </B></FONT><BR><HR> </BODY> </HTML> Bu dosyay merhaba.asp adyla kaydedin ve kendi bilgisayarnzda kiisel Web Serverda veya ISSte snayacaksanz, bu programlar altrn. Browsernzn URL hanesine, kiisel Servernzn adyla birlikte dosyann adn yazn; ve ilk ASP programnz dnyaya Merhaba desin. imdi ikinci ASP rneimizi yazalm. Bu rnekte ise for dngsn kullanarak sizlere "Hogeldiniz!" diyoruz... rnek: Hosgeldiniz.asp <%@ LANGUAGE = VBScript %> <% Option Explicit %> <!-- Bu komut girildiinde hibir deiken Dim komutu ile tanmlanmadan kullanlamaz. --> <HTML> <HEAD> <TITLE>ASP</TITLE> </HEAD> <BODY BGCOLOR="White" TOPMARGIN="10" LEFTMARGIN="10"> <!-- Balk gsterilir. --> <FONT SIZE="4" FACE="ARIAL, HELVETICA"> <B>ASP ile kinci rneimiz</B></FONT><BR> <HR SIZE="1" COLOR="#000000"> <!-- For dngs ile ekrana "Hogeldiniz!" yazlr. --> <% Dim sayac ' Sayac deikeni tanmlanr. Eer tanmlanmazsa Option Explicit kullanld iin hata verir. For sayac = 1 to 5 ' Sayac deikenine 1'den 5'e kadar deer atanarak dngye sokulur. %> <FONT SIZE=<% = sayac %>>Hogeldiniz!<BR></FONT>
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 9

<!-- Yaz puntosu sayac deikenine eitlenir ve dinamik olarak deiik ebatlarda yaz yazlr.--> <% next %> <!-- Her next deyimine gelindiinde sayac 1 artrlr ve bu ilem sayac deeri 5 olana kadar devam eder. --> <HR> </BODY> </HTML> Sonuc:

INTERNET'TE ASP NASIL LER?


ASP teknolojisi ile oluturduunuz sayfalar, yani iinde ASP teknolojisinin gerektirdii kodlar bulunan HTML dosyalarn, .asp uzatmasyla kaydederiz. Bu dosyalar talep edildiinde, Web Server program, eer ASP teknolojisini tanyorsa, talep edilenin ASP sayfas olduunu dosya adnn uzatmasndan anlar; ve bu sayfay ziyaretiye yollamadan nce kendisi ileme tabi tutar. ASP sayfamzdaki kodlar byk bir ihtimalle bir takm dinamik iler yapacak, rnein hesaplamalar, aratrmalar, veri tabanndan veri ekme, dosya sisteminden dosya isteme gibi grevlerini yerine getirecek, ve ortaya kacak olan HTML dosyasn ziyaretiye gnderecektir. Diyelim ki bu rnekleri yaptnz ve cretsiz Site yeri edinmi olduunuz Hosting firmasnn bilgisayarndaki sitenize yerletirdiniz. Sonra Browsernzn URL hanesine bu ASP dosyasnn adn yazdnz ve sayfay talep ettiniz. Karnza, ya ASP sayfasnn iindeki kodlar grntleyen veya sadece sayfann HTML unsurlarna yer veren bir sayfa geldi! Bu Servernzn ASP anlamadn gsterir. ASP sayfalarnz ASP-uyumlu Web sunucularnda altrabilirsiniz. Sitenizde ASP sayfalar bulunacaksa ve cretli evsahibi firmalardan site alan edinecekseniz, sunucunun ASP-uyumlu olmasna dikkat edin. imdi, ilk ASPmizi altrdmza gre, biraz teknikten sz edebiliriz. HTMLin ziyaretinin bilgisayarnda altn biliyorsunuz; istemci Browser, sizin URL hanesine adn yazdnz HTML dosyasn yine adresteki sunucu Web Serverdan ister. Web Server da bu dosyay bulur ve iinde kaytl resim ve dier unsurlarla birlikte istek
10 :.

sahibine gnderir. Fakat kimi zaman Servera bize sadece bir dosyay gndermesini deil, fakat bu dosyann iinde kaytl komutlar varsa onlar icra etmesini de bildirebiliriz. Bunu yapmann bir yolu CGI programlardr. Bir dier yolu ise ASPdir. Web Server, kendisinden bir ASP belgesi talep edildiinde, kendi kendine Dur bakalm! ASP istendii zaman hemen alp gndermek yok, nce bunu ASP.DLL programna gnderelim.. Ondan sonra iimize devam ederiz! der. ASP.DLL, kendisine .asp dosyasnn geldiini Anayasas grnce, olan bakar. hemen ASPlerin alp tpk global.aspnin global.asa,

almadna

dier ASP dosyalar gibi bir dz yaz dosyasdr ve ASP programlarnn alma koullarn dzenleyen kurallar ierir. (Bu dosyay sras gelince ele alacaz.) Yukardaki rneklerde grdmz gibi ASP dosyas hem HTML kodlar ierir, hem de iinde bir Script diliyle yazlm kodlar vardr. ASPye program zellii kazandran bu Script dili ile yazlm kodlardr. ASP.DLL, nce gelen .asp dosyasnda hangi Script dilinin kullanldna bakar ve bunun iin gerekli ortam oluturur; yani bu Script dilini yorumlayacak program altrr; bu program Scripti yorumlar ve icra edilecek komutlar icra eder; ASP.DLL, icra edilen komutlar, iletim sisteminin yardmn istiyorsa (rnein bir veritabanndan veri ekmek gibi, veya dosya sistemine bir dosya atrmak, yazdrmak, sildirmek gibi) bu yardmn edinilmesini de salar. Btn bu ilerin sonunda sizin yazdnz HTML kodlarna ek yapmak (rnein bir tablonun iini, ekilen verilerle doldurmak veya dosya sisteminden edinilen bir dosyann ieriini sayfaya aktarmak gibi) gerekiyorsa bu ekleri ASP.DLL yapar. ASP.DLL, kendisine sevk edilen dosyay satr satr okur ve nce dosyadaki ASP kodlarnn gerektirdii HTML deerlerini bulur; yani nce ASP icra edilir, gerei yerine getirilir. Sonra HTML blmleri ile birletirilip sonuta sunucuya saf ve temiz bir HTML sayfas gnderilir. Bu sayfann iinde bir satr bile ASP kodu bulunmaz. Eer sayfanza ziyaretinin Browsernda almas amacyla Javascript veya VBScript kodlar koydu iseniz, elbette bu kodlar HTMLin paras olarak ziyaretiye gidecektir. Fakat giden sayfada artk ASPye ilikin hi bir ey kalmam olacaktr. Biliyorsunuz, mevcut srmleri itibariyle Browser programlar iinde Netscape VBScript dilini anlamaz. ASP sayfalarmzda istediimiz Script dilini kullanabiliriz; VBScript de kullanabiliriz. Netscapein VBScript anlamamasyla, ASP sayfalarmzda VBScript kullanmamzn bir ilgisi yoktur; nk ASP sayfasnn ortaya kartaca HTML

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 11

kodunda ASP dolasyla VBScript bulunmayacaktr; dolaysyla ASP sayfalarnz, Netscape tarafndan da anlalp, grntlenebilecektir. Tabi ortaya kacak HTML sayfasnn Netscape tarafndan arzu ettiiniz gibi grntlenebilmesi iin Netscapein anlayabildii dinamik HTML unsurlarna yer verme zorunluunuz hl devam ediyor. ASP tekniinin nasl altn anladmza gre imdi biraz terminoloji serpitirelim ki, Webmaster meslektalarnzla biraraya geldiinizde, gerekten ASP ile mesela Javascript arasndaki fark bildiiniz belli olsun. ASP bir Server-Side Script teknolojisidir. Internette istemci ile sunucu arasndaki izginin sunucu tarafna ServerSide (Sunucu Taraf), istemci tarafna da Client-Side (evet, doru tahmin ettiniz: stemci Taraf) denir. Server-Sideda alan Script programlar da Server-Side Script (Sunucu Taraf Scripti) adn alr. Dolaysyla yle bir sayfa yaparsanz (merhaba.htm), bu sayfada Client-Side Script teknolojisi kullanm olursunuz: rnek: Merhaba.htm <HTML><HEAD> <TITLE>JavaScript ile Tarih</TITLE> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY BGCOLOR=WHITE> <H1>Merhaba Dnya</H1> <H2>Bugn:</H2> <H3> <SCRIPT LANGUAGE=JAVASCRIPT> <! tarih = new Date(); document.write(tarih); //--> </SCRIPT> .</H3> </BODY></HTML> Sonuc:

12 :.

HTML sayfanza <SCRIPT>..</SCRIPT> etiketleri arasna yerletireceiniz bu kodun almas iin Servern hibir ey yapmas gerekmez; kodu Browser altracak ve gnn tarihini size (Trkeletirmediiniz iin ngilizce olarak) bildirecektir. imdi, bir de Server tarafnda alan Script ieren sayfaya rnek verelim (merhaba2.asp). Bu kodu yazarken kapanan Script etiketinden sonra nokta olduuna dikkat edin: rnek: Merhaba2.asp <HTML><HEAD><TITLE>VBScript ile Tarih</TITLE> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY BGCOLOR=WHITE> <H1>Merhaba Dnya</H1> <H2>Bugn:</H2> <H3> <SCRIPT LANGUAGE=VBScript RUNAT=SERVER> Response.write(Date) </SCRIPT>. </H3> </BODY></HTML> Bu sayfada kullandnz Scripti VBScript ile yazdnz farkettiniz. Yani? Bu HTML sayfas, Netscapede grntlenemez! Hayr. Grntlenir, nk Scripti Netscape deil, Server altracak. Bunu <SCRIPT> etiketinin iindeki RUNAT zellii ile belirtiyoruz. (Run, altr; at ise iinde, zerinde anlamna gelir. RUNAT ...de altr gibi bir anlama sahiptir.) Burada RUNATin karsna yazdmz SERVER ifadesi ile, Scriptin Browsera gnderilmeden nce Serverda altrlmasn salyoruz; Servera Bu Scripti Serverda altr! demi oluyoruz. Yukarda ASPnin icrasnda HTML sayfa Servera verilmeden nce ASP.DLL tarafndan iindeki ASP kodlarnn icra edildiini sylemitik. Nitekim, burada grdnz gibi, ASP.DLL, HTML sayfay iinde Servern altrmas gereken blmle birlikte Servera gnderdi; Server kendisine gelen dosyada kendi icra etmesi gereken (RUNAT=SERVER zellii verilmi olan Scripti) blm icra etti ve sonucu Browsera

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 13

aktard. Yani, Servern altrd Scriptin sonucu sayfaya ASPden sonra eklendi. Dolaysyla, nokta, yanl yerde kald. Bundan kartacamz sonu u olacak: ASP sayfalarmza, Browser, Server ve ASP.DLL tarafndan altrlacak kodlar yerletirirken, srasna dikkat edeceiz ve hangi srada icra edilmelerini istiyorsak, o srada koyacaz. Server ile ASP.DLLin ilikisi sadece Script dilini altrmaktan ibaret deildir. ASP, istemciden gelen HTTP stemi (Request) ve HTTPye giden Karlk (Response) unsurlarndan tutun, ActiveX Data Objects (ADO, AcvtiveX Veri Nesneleri) araclyla, iletim sisteminin sunaca veritabanna eriim imkann ve iletim sisteminin sunduu dosya ynetimine kadar bir ok imkan kullanr. Bu imkanlar ASPnin eline getii anda nesne (Object) saylrlar imdi bu nesnelere biraz yakndan bakabiliriz.

ASP NESNELER
Application Koleksiyonlar Contents StaticObjects ObjectContext Metodlar SetAbort SetComplate Request zellik TotalBytes Koleksiyonlar ClientCertificate Cookies Form QueryString ServerVeriables Metodlar BinaryRead Response zellik Buffer CacheControl ContentType Expires ExpiresAbsolute IsClientConnected PICS Status Koleksiyonlar Cookies Metodlar AddHeader Name AppendToLog BinaryWrite Clear End Flush Redirect Write Server zellik ScriptTimeout Metodlar CreateObject Execute GetLastError HTMLEncode MapPath Transfer URLEncode Session zellik CodePage LCID SessionID Timeout Koleksiyonlar Contents StaticObjects Olaylar Session_OnStart Session_OnEnd Metodlar Abandon Contents.Remove Contents.Remove All

Metodlar Olaylar Contents.Remove OnTransactionAbort Contents.RemoveAll OnTransactionCommit Lock UnLock Olaylar Application_OnStart Application_OnEnd

Application/Uygulama Nesnesi
ASP ile yaplm her site Web Server tarafndan uygulama program olarak deerlendirilir. Aplication nesnesi sayesinde, siteye bal kullanclarn tm iin ortak olan deikenler tanmlanabilmektedir. Application ve Session nesnelerin kendi balarna en ok kullanld yer, sitemize gelen ziyaretilerin saysn (sitemizin ald Hit saysn)

14 :.

tutmasn salamaktr. Bu genellikle Global.asa pogramna bir saya yerletirilerek yaplr. Diyelim ki bir borsa sitesi yaptnz; ziyaretileriniz gelerek, sata sunulan hisse senetlerinin deerlendirmelerini okuyacak ve size "u, u hisse senetleri al!" diye talimat brakacak. Btn ziyaretilerinizin eriecei sadece bir veritabannz var; buna karlk her bir ziyaretinin yapaca farkl tercihler, verecei farkl kararlar olacaktr. Application nesnesi, sitenizle veritabanna erimekten tutun, alverilerinize kadar sitede yaplacak btn ilerin btn kurallarn bilecek ve uygulayacak; Session nesnesi ise sadece kullanclarn alverilerini, tercihlerini bilecektir. rnek: '--Internette browser zerinde oynanan online oyunlarda da, application tipi deikenler kullanlmaktadr. yle ki, bu tr oyunlarda oyuncu says, aplication deyimi kullanlarak takip edilir. <'--Bir kii oyuna balandnda aadaki programck yrtlr.> <'--Online Oyuna Katlmak> <% '--Server tarafndan taraycya "Merhaba Oyunumuza Hogeldiniz!" yazlr. response.write "Merhaba Oyunumuza Hogeldiniz!<br>" '--Deikene deer atanacandan dier kullanclar iin bu ilem kitlenir. application.lock '--oyuncusay deikeninin deeri 1 artrlr. application("oyuncusay")=application("oyuncusay")+1 '--Application zerindeki kilit kaldrlr. application.unlock '--Server tarafndan ekrana o ana kadar ki oyuncu says yazlr. response.write "u ana kadar oyuna girenlerin says " & application("oyuncusay") & " oldu!<br>" %> <'--Online Oyundan kmak> <'--Bir kii oyundan ktnda aadaki programck yrtlr.> <% '--Server tarafndan ekrana Oyunumuzu Oynadnz in Teekkrler yazlr. response.write "Oyunumuzu Oynadnz in Teekrler!<br>" '--Deikene deer atanacandan dier kullanclar iin bu ilem kitlenir. application.lock '--oyuncusay deikeninin deeri 1 azaltlr. application("oyuncusay")=application("oyuncusay")-1 '--oyuncusay deikeninin deeri 0'dan kk olup olmad kontrol edilir. if application("oyuncusay")<0 THEN '--Eer kk ise oyuncusay deikeni sfrlanr.

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 15

application("oyuncusay")=0 end if '--Application zerindeki kilit kaldrlr. application.unlock '-- Server tarafndan ekrana o ana kadar ki oyuncu says yazlr. response.write "u an oyun oynayan " & application("oyuncusay") & " kullanc var !<br>" %> <'--Online Oyunda Ka Kii Olduunu Grmek> <% '--Server tarafndan ekrana Oyuna Girenlerin Says yazlr. response.write "Oyuna Girenlerin Says<br>" '--Server tarafndan oyuncusay isimli application deikeninin ierii yazlr. response.write "Burada " & application("oyuncusay") & " oyuncu var!<br>" %>

Application.Contents
<OBJECT> olabilir. rnek: '--Aadaki rnek ile application deyimiyle tanmlanm tm deikenlerin ieriini denetleyebiliyoruz... <'--Contents.asp> <% '--Yazar isimli tm kullanclar iin geerli bir application deiken tanmlanr. Application("Yazar") = "brahim ubuku" '--Yazar isimli tm kullanclar iin geerli bir application balant nesnesi tanmlanr. Set Application("Nesne1") = Server.CreateObject("ADODB.Connection") '--Application ile tanmlanm ka tane deiken varsa, hepsini srayla dndrr. For Each Item in Application.Contents '--Sradaki deiken bir nesne ise ad ve nesne olduu yazlr. If IsObject(Application.Contents(Item)) Then Response.Write Item & " objedir.<BR>" Else Response.Write Item & "=" & Application.Contents(Item) & "<BR>" Tipi nesne olmayan deikenlerin ad ve ierii yazlr. tag kullanlmakszn tanmlanm elemanlar ierir. Bu hem

Server.CreateObject hem de bir Application bildirimi ile kurulmu global deikenler de

16 :.

End If Next Dngye devam eder. %> <'--Sonuc:> Yazar=brahim ubuku Nesne1 objedir.

Application.StaticObjects
Application nesnesinin <OBJECT> tag ile oluturulmu olan tm nesneleri ierir. Bir nesne iin belirli bir zelliin deerini saptamada veya tm sabit nesnelerin tm zelliklerini almada kullanlabilecek bir kolleksiyondur. Global.asa ierisinde belirtilir. rnek: <'--Global.asa> <OBJECT RUNAT=Server SCOPE=Application ID=BenimInfo

PROGID="MSWC.MyInfo"> </OBJECT> <OBJECT RUNAT=Server SCOPE=Application ID=BenimConnection

PROGID="ADODB.Connection"> </OBJECT> <OBJECT RUNAT=Server SCOPE=Application ID=BenimADRot

PROGID="MSWC.ADRotator"> </OBJECT> '--Yukarda Server tarafnda BenimInfo, BenimConnection, BenimADRot isimli static nesneler tanmlanmtr. <'--Static.asp> <% '--Application ile tanmlanm tm static objeler for dngsne sokulur. For Each anahtar In Application.StaticObjects

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 17

'--Taraycya objenin adn yazar. Response.Write anahtar & "<BR>" '--for deyimine gnderir. Next %> <'--Sonuc:> BenimInfo BenimConnection BenimADRot

Application.Contents.Remove
Application ile tanmlanm deikenleri silmek iin kullanlr. rnek: <% '--yazar, yayintarihi, Nesne1 isimli ortak deikenlere atama yaplr. Application("yazar") = "brahim ubuku" Application("yayintarihi") = "14/7/2000" Set Application("Nesne1") = Server.CreateObject("ADODB.Connection") '--Birinci tanmlanan yazar isimli deiken silinir. Application.Contents.Remove(1) '--yayintarihi isimli deiken silinir. Application.Contents.Remove("yayintarihi") '--Aplication ile tanmlanm ka tane deiken varsa, hepsini srayla dndrr. For Each Item in Application.Contents If IsObject(Application.Contents(Item)) Then '--Eer deikene bir obje atanmsa obje olduu ekrana yazlr. Response.Write Item & " objedir.<BR>" Else '--Eer deikene bir obje atanmam ise ad ve ierii yazlr. Response.Write Item & "=" &Application.Contents(Item) & "<BR>" End If Next %>
18 :.

<'--Sonuc> Nesne1 objedir. * Grld zere application ile tanmlanm yazar ve yayintarihi deikenleri silindii iin sonu ekrannda gzkmedi.

Application.Contents.RemoveAll
Application ile tanmlanm tm deikenleri siler. rnek: <% '--Application ile tanmlanm tm deikenler server'dan silinir. Application.Contents.RemoveAll( ) %>

Application.Lock
Application ile tanmlanm deikenlerin ierii deitirilirken dier

kullanclarn deikenlerde herhangi bir deiiklik yapmalarn engeller. rnek: <% Application.Lock %>

Application.UnLock
Lock ile kilitlenen aplication deikenleri zerinden kilidi kaldrr. rnek: <% Application.UnLock %>

Application_OnStart
Siteye ilk ziyareti geldiinde yani uygulama ilk baladnda altrlacak kod bu olay ierisine yazlr. Global.asa dosyasnn ierisinde bulunur. rnek: <'--Bu rnek sitenize toplam ka kii girdiini ve o anda ka kiinin sitenize bal olduunu hesaplar.> <'--Global.asa>
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 19

'--yazlan script'in VBscript olduu ve server tarafnda alaca bildirilir. <script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("OturumSayisi") = 0 '--Site ilk giri yapldnda OturumSayisi ve ZiyaretiSayisi deikenleri sfrlanr. Application("ZiyaretciSayisi") = 0 '--Ziyareti 10 dakika ierisinde yeni bir tercih yapmaz ise Session yani oturum nesnesi server tarafndan kapatlr. Session.Timeout = 10 End Sub Sub Session_OnEnd() '--Oturum kapatldnda oturumsayisi bir azaltlr. Application("OturumSayisi ") = Application("OturumSayisi ") 1 End Sub Sub Session_OnStart() '--Siteye balanldnda yani yeni bir oturum yapldnda OturumSayisi bir artrlr. Application("OturumSayisi ") = Application("OturumSayisi ") + 1 '--Siteye balanldnda yani yeni bir oturum yapldnda ZiyaretciSayisi bir artrlr. Application("ZiyaretciSayisi ") = Application("ZiyaretciSayisi ") + 1 End Sub </script> <'--Olay.asp> <% Response.Write "u an siteyi " & Application("OturumSayisi ") & " kii ziyaret ediyor. Site u ana kadar toplam " & Application("ZiyaretciSayisi ") & " kez ziyaret edildi." %> <'--Sonuc> u an siteyi 1 kii ziyaret ediyor. Site u ana kadar toplam 1 kez ziyaret edildi.

Application_OnEnd
En son ziyaretinin uygulamadan kmasyla birlikte altrlacak kod bu olay ierisine yazlr. rnek: <'--Bu rnek sitenize toplam ka kii girdiini ve o anda ka kiinin sitenize bal olduunu hesaplar.>

20 :.

<'--Global.asa> '--yazlan script'in VBscript olduu ve server tarafnda alaca bildirilir. <script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("OturumSayisi") = 0 '--Site ilk giri yapldnda OturumSayisi ve ZiyaretiSayisi deikenleri sfrlanr. Application("ZiyaretciSayisi") = 0 '--Ziyareti 10 dakika ierisinde yeni bir tercih yapmaz ise Session yani oturum nesnesi server tarafndan kapatlr. Session.Timeout = 10 End Sub Sub Session_OnEnd() '--Oturum kapatldnda oturumsayisi bir azaltlr. Application("OturumSayisi ") = Application("OturumSayisi ") 1 End Sub Sub Session_OnStart() '--Siteye balanldnda yani yeni bir oturum yapldnda OturumSayisi bir artrlr. Application("OturumSayisi ") = Application("OturumSayisi ") + 1 '--Siteye balanldnda yani yeni bir oturum yapldnda ZiyaretciSayisi bir artrlr. Application("ZiyaretciSayisi ") = Application("ZiyaretciSayisi ") + 1 End Sub </script> <'--Olay.asp> <% Response.Write "u an siteyi " & Application("OturumSayisi ") & " kii ziyaret ediyor. Site u ana kadar toplam " & Application("ZiyaretciSayisi ") & " kez ziyaret edildi." %> <'--Sonuc> u an siteyi 1 kii ziyaret ediyor. Site u ana kadar toplam 1 kez ziyaret edildi.

ObjectContext/Nesne Balam
Microsoft'un erimemizi salar. Transaction MTS, ASP Server (MTS) programnn sunduu hizmetlere

sayfalar

iinden,

uygulama

programlarndan

yararlanmamz salar. ASP uzmanlnz ileri dzeylere ulatrdnz zaman MTS ve ObjectContext nesnesinden yararlanabilirsiniz. Mesela bir veri tablosuna yaplacak kayt, silme gibi ilemler MTS ile yaplyorsa, yaplan ilemler veri tablosu zerinde
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 21

deil tampon bir alanda yaplr. Bylelikle kullanc tarafndaki balant kopmalarnda MTS tamamlanmad iin kullancnn ilemleri iptal edilir. Eer bu gibi durumlarda MTS kullanlmazsa, veri tablosuna eksik kayt yaplm olur. rnek: <'--Dosya1.asp> <HTML><HEAD></HEAD><BODY> <form action="Dosya2.asp" method="POST"> UrunID:<input type="Text" name=" UrunID"> UrunAdi:<input type="Text" name=" UrunAdi"> Aranan Miktar:<input type="Text" name="Siparis"> <input type="Submit" name="Submit" value="Submit"> </form> </BODY></HTML> <'--Dosya2.asp> <%@ TRANSACTION = Required LANGUAGE = "VBScript" %> <% set connDB=server.createobject("adodb.connection") connDB.Open "products" productID = Request.Form("UrunID") mySQL="Select * from tblurunler Where UrunID = " & UrunID Set rsUrunAra = Server.CreateObject("ADODB.Recordset") rsUrunAra.Open mySQL, connDB If rsUrunAra.BOF Or rsUrunAra.EOF Then ObjectContext.SetAbort ElseIf rsUrunAra.Fields("Miktar") < Request.Form("Siparis") Then Response.Write "stediiniz miktar stokda mevcut deil. Stokda " & _ rsUrunAra.Fields("Miktar") & " tane rn var ve sizin sipariiniz ise " & _ Request.Form("Order") & ".<br>" ObjectContext.SetAbort Else rsUrunAra.Fields("Quanity") = rsUrunAra.Fields("Quanity") Request.Form("Siparis") rsUrunAra.Update ObjectContext.SetComplete End If rsUrunAra.Close connDB.Close %> Sub OnTransactionAborted() Response.Write "Transaction iptal edildi nk stokda istediiniz miktar yok."
22 :.

End Sub Sub OnTransactionCommit() Response.Write "Transaction ilemi tamamland ve sizin sipariinizin gnderme ilemlerine baland." End Sub

ObjectContext.SetAbort
Transaction ileminin tamamlanmasn ve kaynan tazelenmesini engeller. rnek: <% ObjectContext.SetAbort %>

ObjectContext.SetComplate
Transaction ileminin tamamlanmasn salar. rnek: <% ObjectContext.SetComplate %>

ObjectContext/OnTransactionAbort
Transaction ilemi iptal edildiinde bu olaya yazlan kod alr. rnek: <% Sub OnTransactionAbort() '--Buraya setabort kullanldnda ilenecek kod gelecek!!! End Sub %>

ObjectContext/OnTransactionCommit
Transaction ilemi tamamlandnda, bu olaya yazlan kod alr. rnek: %> Sub OnTransactionCommit() '--Buraya setcomplate kullanldnda ilenecek kod gelecek!!! End Sub
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 23

<%

Request/Talep Nesnesi
Request nesnesi, Web programmzn Girdi (Input) blmn oluturur. Bir Web ziyaretisi herhangi bir talepte bulunduu, yani bir sayfann gnderilmesini istedii anda, Web Server bu talebi, bir nesne olarak ele alr ve istenen bilgiyi ziyaretinin Browser'na gnderir.

Request.TotalBytes
Kullancnn Talep ettii bilginin ka byte olduunu verir. rnek: <% Response.write Request.TotalBytes %>

Request.ClientCertificate / Kullanc Sertifikas


Sertifika, HTTP balantsnda "Ben filancaym!" diyen istemcinin, gerekten filanca olup olmadn gsterir. Bir yazlmdan ibaret olan sertifikalar yetkili bir kurum veya irket verir; bir seri numaras olur. ifreleme teknikleri gelimi olduu iin taklit edilmesi zordur. Sertifika uygulamas iin Web Server'n Secure Socket Layers denen gvenli HTTP protokoln kullanmas gerekir. Bu durumda Server'n URL'i, http:// diye deil https:// diye yazlr. ASP asndan sertifika ile ilgili her trl bilgi ClientCertificate kolleksiyonunda durur. Szgelimi, bir ziyaretinin gerekten sitenize girmeye yetkili olup olmadn anlamak iin: <%SertifikaNo = Request.ClientCertificate(SerialNumber) %> gibi bir kodla istemcinin Sertifika seri numarasn SertifikaNo deikenine atayabilir ve daha sonra bu deikenin deerini elinizdeki bir liste ile karlatrabilirsiniz. rnek: <HTML><HEAD></HEAD><BODY> Bu sertifikann geerlilii <%= Request.ClientCertificate("ValidFrom") %> tarihinden <%= Request.ClientCertificate("ValidUntil") %> tarihine kadardr. </BODY></HTML>

Request.Cookies
Ziyareti bir sayfadan dierine geerken Server ile ilikisini kaybedebilir. Bu ilikinin srekliliini salamak iin ziyaretiyi iaretlemek gerekir; bu iareti de Cookie
24 :.

salar. Cookie'ler ASP iin iki ayr grup Cookie nesnesi olutururlar: verilenler, ve hakknda bilgi alnan varolan Cookie'ler. Birinci grup Request (talep) nesneleri, ikinci grup ise Response (karlk) nesneleri iinde ele alnabilir. rnek: <% '--Bu rnekte kullancnn bilgisayarnda BenimCerez isimli erez dosyas oluturur. Response.Cookies("BenimCerez")("Ad") = "ibrahim" '--Bu erez dosyas ierisinde de Ad ve Title isimli anahtar alanlar oluturur. Response.Cookies("BenimCerez")("Title") = "Yazar" '--BenimCerez erezinin iindeki tm anahtarlar ve deerleri Request yardmyla ekrana yazdrlyor. Response.Write Request.Cookies("BenimCerez") %> <'--Aadaki kod kullancda bulunan tm erezleri gsterir.> <% For Each item In Request.Cookies Response.Write item & " = " & Request.Cookies(item) & "<br>" Next %> <'--Sonuc> TITLE=Yazar&AD=brahim

Request.Form
Verileri baka sayfalara aktarabilmek iin kullanlan POST tipi formlardaki deikenleri okuyabilmeyi salar. rnek: <'--form.asp> <HTML><HEAD></HEAD> <BODY> '--Gnder butonuna basldnda, bilgilerin gnderilecei asp sayfas action blmne yazlr. <form action="formisle.asp" method="POST"> Name:<input type="Text" name="isim" maxlength="20"><br> Company:<input type="Text" name="firma" maxlength="20"><br> <input type="Submit" name="Submit" value="Gnder"> </form> </BODY> </HTML>
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 25

<'--formisle.asp> <HTML><HEAD></HEAD> <BODY> <% Response.Write Request.Form("isim")%><% Response.Write Request.Form("firma") %> isimli firmada alyor. </BODY> </HTML>

Request.Querystring
Web ziyaretisinin bilgisayarndan kalkp Servera gelen herey, QueryString kolleksiyonunu oluturur. Bu ziyaretinin Browsern URL adresi hanesine yazd bir basit HTML sayfas yolu ve ad olabilir; Linklerle gnderilen veriler; GET tipindeki bir Formun Gnder dmesini tkladnda gelen bilgiler olabilir. rnek: GET tipindeki bir Formun Gnder dmesini tkladnda gelen bilgileri QueryString ile almak. <'--FormGet.asp> <html><head><title>FormGet.asp</title></head> <body bgcolor="#FFFFFF"> <Form action = "FormGetRespond.asp" method="get"> Ltfen Adnz Yazn:<p> sim -> <Input NAME="isim" size ="10"><br> Firma -> <Input NAME="firma" value="PCLIFE" size="10"><br> <Input type="submit" value="Haydi Gnder!"> <hr></form> </body></html> <'--FormGetRespond.asp> <html><head><title>FormGetRespond.asp</title> </head><body bgcolor="#FFFFFF"> <% ism=request.querystring("isim") frm=request.querystring("firma") response.write ism & "<br>" response.write frm & "<br>" %> </body></html>

26 :.

Request.ServerVeriables
Request nesnesinin bir dier kolleksiyonu, bizim kendi Web Server'mzn o anda almakta olan ASP sayfas iin oluturduu ortamn deikenleridir. Bunlarn arasnda ziyaretinin Browser'na ilikin bilgiler de vardr. nce u ksa ASP sayfasn altrarak kendi Server'mzn u andaki deikenlerini ayrntl olarak grelim; rnek: <HTML> <HEAD> <TITLE>HTTP ServerDegikenleri Kolleksiyonu</TITLE> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY BGCOLOR=white> <CENTER> <H2>HTTP Server Deikenleri Kolleksiyonu</H2> </CENTER> <TABLE BORDER=1> <TR><TD><B>Deikenin ad</B></TD> <TD><B>Deeri</B></TD></TR> <% For Each key in Request.ServerVariables %> <TR> <TD><% = key %></TD> <TD> <%If Request.ServerVariables(key) = "" Then Response.Write "&nbsp;" Else Response.Write Request.ServerVariables(key) End If Response.Write "</TD>"%> </TR> <% Next %> </TABLE> <p> Sizin Host'unuzun ad:<B> <%=Request.ServerVariables("HTTP_HOST")%></B> </BODY> </HTML> <'--Sonuc>

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 27

Bu sayfay altrdmz zaman grntlenecek tabloda, Bir HTTP Server'n SerDeg.asp sayfasn altrd anda oluturduu ortama ekil veren btn deikenleri greceksiniz. Bu deikenleri programlama yoluyla deitiremeyiz; sadece okuyup, yararlanabiliriz. HTTP Server Deikenleri Kolleksiyonunun elemanlar yle sralanr: '--HTTP Header iinde yer alan btn deikenler ve deerleri. Header adlarnn nnde "HTTP_" neki vardr. ALL_HTTP: '--HTTP Header iinde yer alan btn deikenler ve deerleri. Header adlar ve deerleri istemci Browser'n verdii ekilde gsterilir. ALL_RAW: '--Web Server'n ISAPI.DLL dosyas iin varsayd kk dizin APPL_MD_PATH: '--Web Server'n varsayd kk dizinin gerek yolu. APPL_PHYSICAL_PATH: '--Kullanc Web Server'a kullanc ad/parola yntemiyle balanabiliyorsa, kullanlan parola AUTH_PASSWORD: '--Kullanc Web Server'a kullanc ad/parola yntemiyle balanabiliyorsa, kullanlan yetkilendirme yntemi AUTH_TYPE: '--Kullanc Web Server'a kullanc ad/parola yntemiyle balanabiliyorsa, kullanc ad AUTH_USER: '--Kullanc siteye balanmak iin yetkilendirme sertifikas kullanyorsa kendisine verilen kimlik (ID) CERT_COOKIE: '--Sertifikann varln gsteren bit deeri CERT_FLAGS: '--Sertifika varsa veren kurum CERT_ISSUER: '--Secure Socket Layers kullanlyorsa, balant iin anahtar deeri CERT_KEYSIZE: '--zel anahtar deeri CERT_SECRETKEYSIZE: '--Sertifika seri no. CERT_SERIALNUMBER: '--Sertifikay veren merci CERT_SERVER_ISSUER: '--Server Sertifikasnn "konu" alan deeri CERT_SERVER_SUBJECT: '--stemci Sertifikasnn konu alan deeri CERT_SUBJECT:
28 :.

'--stemcinin gnderdii bilgi yumann boyutu CONTENT_LENGTH: '--Ziyaretiden gelen bilgilerin GET veya POST metoduna gre edindii tr CONTENT_TYPE: '--Web Server'n ziyareti ile etkileim arayznn ad ve srm. Genellikle: CGI/1.1 GATEWAY_INTERFACE: '--Ziyareti ile balant gvenli ise ON, deilse OFF HTTPS: '--Secure Sockets Layer iin balant anahtar says HTTPS_KEYSIZE: '--zel Server sertifikasnn gizli anahtar says HTTPS_SECRETKEYSIZE: '--zel Server sertifikasnn veren merci HTTPS_SERVER_ISSUER: '--zel Server sertifikasnn konusu HTTPS_SERVER_SUBJECT: '--Web Server'n ayn anda ka kere almakta olduu INSTANCE_ID: '--u anda almakta olan Web Server'n Meta yolu INSTANCE_META_PATH: '--stemcinin IP numaras LOCAL_ADDR: '--stemci Windows NT sisteminde ise oturum ama ad LOGON_USER: '--almakta olan ASP'nin greli yolu ve ad PATH_INFO: '--almakta olan ASP'nin gerek yolu ve ad PATH_TRANSLATED: '--stemcinin gnderdii bilgi kmesi QUERY_STRING: '--stemcinin Host'unun (ISS'inin) IP'si REMOTE_ADDR: '--stemcinin Host'unun (ISS'inin) ad REMOTE_HOST: '--stemcinin gerek ad REMOTE_USER: '--stemciden bilgi isteme yntemi (GET veya POST) REQUEST_METHOD: '--almakta olan ASP'nin ad SCRIPT_NAME:
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 29

'--Sunucu'nun ad SERVER_NAME: '--Sunucuya balantnn geldii TCP kap numaras SERVER_PORT: '--TCP kaps gvenli ise 1, deilse 0 SERVER_PORT_SECURE: '--Server'n altrd HTTP'nin srm SERVER_PROTOCOL: '--Server programnn ad ve srm SERVER_SOFTWARE: '--u anda geerli URL URL:

Request.BinaryRead
POST deyimi ile kullancda servere gnderilen data'lar okur. rnek: <% Dim ByteCount, BinRead ByteCount = Request.TotalBytes BinRead = Request.BinaryRead(ByteCount) %>

Response
Serverdan kullancnn taraycsna giden herey karlktr. Response

nesnesinin ASP sayfasnn kt kontroln salayan bu metodlarn aadaki elenceli Scriptle snayabilirsiniz (ASP ile elence de bundan daha fazla olamaz!). Burada Browsera gitmesi midiyle cmle var. Program altrn ve bakalm hangisi ekranda kalacak? Bu kadar elendiinize gre u soruyu da yantlayabilirsiniz: Neden?Bu 1 Numaral mesaj m Browsera gidecek?Bu 2 numaral mesaj m Browser'a gidecek? Bu 3 numaral mesaj m Browsera gidecek?

Response.Buffer
True (doru) olarak ayarlandnda ziyaretiye gnderilecek sayfann btn unsurlar bir tampon blgede toplanr, Scriptin almas bitinceye kadar beklenir ve HTML sayfa toptan gnderilir. Kimi zaman ASP kodumuz sonuna kadar altnda ziyaretiyi baka bir sayfaya ve siteye ynlendirebilir. Kullancya cookie gnderildiinde. te bu gibi sebeplerle, zellikle ok ilem gerektiren ASP sayfalarnn ba tarafna bunu salayan kodu koymakta yarar olabilir.
30 :.

rnek: %> Response.Buffer = TRUE <%

Response.Expires
Kullanc tersine bir ayar yapmadysa, Browser genellikle grntledii sayfalar Geici Internet Dosyalar dizinine (cache) kaydeder ve tekrar ayn sayfay grntlemek istediinizde sayfay Internetten edinmek yerine kendi sabit diskinden alr. Oysa zellikle haber gibi sreli bilgilerin sunulduu Web sitelerinde bu sitenin itibarn sarsar. ASP tekniiyle bunu nleyebiliriz. ASP sayfamzda bu sayfann gzgelimi 60 dakikadan fazla cache dizinde tutulmamasn salayacak Expires metodunu kullanabiliriz: rnek: <% '--Burada yazdmz rakam deitirerek, sayfann cachede tutulaca dakikay deitirebiliriz. Response.Expires = 60 %> <% '--Sayfann hi saklanmamasn salar. Response.Expires =0 %> Response.ExpiresAbsolute ExpiresAbsolute'in response.Expires'ten tek fark, orada deer olarak sre verilirken, burada tarih verilir. rnek: '--Sayfamzn her gn yenilendiini dnrsek bu kod ile ziyaretilerimizin her gn sayfamz, Browser cashe'inden silip yenisini yklemesini salarz. <%Response.ExprisesAbsolute=date()%> '--ifre korumal bir sayfamzn, ii biter bitmez Browser yardmc belleinden silinmesi iin aadaki kod sayfamzn bana eklenebilir. <%Response.ExprisesAbsolute=now()-1%>

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 31

Response.IsClientConnected
Eer sayfa tamamen kullanc tarafna aktarld ise True deeri geri dndrlr. Hayr sayfa Response.End ile kesildi ise False deeri geri dndrlr.

Response.Status
Dosyalarn yklenip yklenememesi ynnden Server'n durumunu string bilgi olarak geri dndrr. rnek: <% '--Sayfa problemsiz yklendiyse 200 OK, Sayfa yok ise 404 File Not Found gibi mesajlar grntlenir. response.write response.status %>

Response.Cookies
Cookies(Kurabiye-erez), genellikle istemcinin iaretlenmesinde kullanlr.

HTTP protokol ile istemciye snrl lde veri yollayp zel bir dizine bu verileri kaydetme ve daha sonra ayn istemcinin bu verisine baklarak anlalmas eklinde iler. Cookiese Response ve Request nesnelerinin her ikisi ile de eriilebilir. Ancak Request ile sadece okuma dzeyinde bir eriim salanrken Response ile de yazma dzeyinde bir eriim salanr. Cookynin oluturulmas: Response.Cookies(kurabiyem) = ekerli Kurabiye le istemcinin bilgisayarna kurabiyem=ekerli Kurabiye deiken-deer ifti yazdrlr. Ancak bir son geerlilik deeri girmezsek, bu deer sadece oturum(session) nesnesinin mr kadardr. Oturumunuz bittiinde bu deerler de silinir. Response.cookies(kurabiyem).Expires = #31/12/2000 ile de 2000 yl ile birlikte silinecek bir Kurabiyeyi istemciye gndeririz. Ancak gnderdiimiz bu deiken-deer iftine herkes(rnein bu kurabiye sizin makinenize www.pclife.com.tr adresinden yolland ise www.zekam.net adresinde de eriilebilir.) eriebileceinden response.cookies(kurabiyem).domain = /pclife.com.tr/ response.cookies(kurabiyem).path = /aspkosesi/
32 :.

response.cookies(kurabiyem).secure= True kod parac ile sadece PCLIFE tarafndan grlebilecek ekle getirebiliriz.

Response.Clear
Buffer metodu ile Scriptin sonunu beklerken geici bir alanda tutulmakta olan HTML, Clear metodu ile temizlenir, yok edilir. Flush metodunda tampondaki HTML Browsera gnderilir; ancak Clear metodu tampon blgedeki hereyi yok eder. Byle tehlikeli bir metod neden vardr, ve nerede kullanlabilir? Bir ok yerde: ziyaretinin szgelimi elektronik alveri sitemizde alveriten vazgetiini belirtmesi zerine tampon blgede tutmakta olduumuz ve alnan mallar listesini ieren HTMLi bu yntemle temizleriz.

Response.End
Response nesnesinin o anda icra edilmekte olan Scripti durdurarak, o ana kadar ne elde edilmise hepsini Browsera gndermesini salayan metodu olan End, ayn zamanda Buffer metoduyla tutulan HTMLin de gnderilmesine yol aar. Bu metoddan sonraki HTML veya ASP kodlar icra edilmez.

Response.Flush
Buffer metodu sayfann tmnn Scriptin icras bitmeden gnderilmesini nlerken, Flush bunun tam tersini yapar. ASP, Response nesnesinin Flush metodu kullandmz grd anda, o ana kadar icra edilmi kodun sonucu olan HTMLi Browsera gnderir:

Response.Redirect
Bu komut sayesinde kullancy baka bir sayfa veya siteye ynlendirme ilemi yaplabiliyor. rnek: <% @LANGUAGE=VBscript %> <% Response.Expires = 0 Response.Redirect("www.pclife.com.tr") %> <HTML><HEAD><TITLE>ASP ILE YONLENDRME</TITLE></HEAD> <BODY>

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 33

Bu sayfada yazl olanlar okumanz mmkn olmayacak nk bu sayfa sizi PC LIFEn sitesine gnderecek.. </BODY></HTML> stenilen bilginin kullancnn taraycsnda grntlenmesini salar. Kaynak kod olarak kullancya gnderileceinden HTML kodlar taraycda iletilerek gsterilir, ekranda gzkmez. rnek: Merhaba Dnya <% Response.Write "<b>Merhaba Dnya</b>" %>

Server
ASP, Web Server programn bir nesne olarak ele alr ve onun bize salad aralar ve imkanlar kullanmamz salar. Web Server, ASP iin bir nesnedir, ASPnin bir ok iini bu nesnenin zellikleri ve metodlar halleder. Server nesnesinin bir zellii (ScriptTimeout) ve drt metodu (CreateObject, HTMLEncode, URLEncode, MapPath) vardr. Web Server alt bilgisayarn sizin siteniz adna ynetiminden sorumludur; dolaysyla grevidir. bu kadar az zellik ve metodu var diye bu nesneden ok yararlanmayacamz sanmayn. ActiveX ve COM bileenlerini altrmak Servern

Server.ScriptTimeout
Diyelim ki bir ASP Scripti ya bizim, ya ziyaretinin, ya da Servern bir hatas znden sonsuz dngye girdi! Dngnn durmas iin gerekli art asla yerine gelmiyor ve Script bir trl yapaca ii yapp, sonlandrmyor. Bu durumlarda ziyaretinin ve tabi Servern sonsuza kadar beklemesi mmkn deil! Programn bir ekilde durdurulmas gerekir. Bunu hemen hemen btn Web server programlarnn Script Timeout (Script sre snr) diyalog kutusuna bir deer girilerek yaplr. rein MS-Internet Information Server iin varsaylan Script Timeout sresi 90 saniyedir. Yani ISS, herhangi bir Scriptin alp-durmasn 90 saniye bekler; bu srenin sonunda Scriptin almas tamamlanmazsa ziyaretiye arzu ettii sayfann veya unsurun bulunamadn bildirir. Bu sreyi (Servern varsaylan deerinin altnda) ksaltmak deilse bile uzatmak elimizdedir. Bunu ScriptTimeout zelliini kullanarak yaparz.

34 :.

Server.CreateObject
CreateObject(ObjectID) Diyelim ki sayfanzda reklam amal banner grafiklerini belirli zaman aral ile veya ziyaretiye gnderdiiniz Cookie (erez) bilgilerine gre deitirmek istiyorsunuz. Bunun iin diyelim ki MS-Web Server Programnn AdRotator bileininden yararlanacaksnz; Servern yle bir kod iinizi bir grebilir: Burada Servern GetAdvertisement, AdRotator bileininin metodudur.

CreateObject metodundan, veritabanna ularken de yararlanacaz. rnek: <% '--Bu kod ile veritaban nesnesi tanmland. stenirse burada serverde kaytl olan DLL dosyalar da tanmlanabilir. Set Nesne=Server.CreateObject("ADODB.Connection") %>

Server.Execute
ASP dosyas ierisinden baka bir ASP dosyas armay salar. rnek: <'--Cagiran.asp> <HTML><BODY> Benim adm <%Server.Execute("Cagrilan.asp")%> mi? </BODY></HTML> <'--Cagrilan.asp> <% Response.Write "brahim" %>

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 35

Server.GetLastError
GetLastError Scripin ilenmesi srasnda oluan hatayla ilgili detayl bilgileri geri dndrr.

Server.HTMLEncode
HTMLEncode (String) inde HTML asndan kod paras veya zel iaret saylan karakterler bulunan metinleri sayfamza ierik olarak gndereceimiz zaman Servern iaretleri aynen metin gibi gndermesini salamak iin kullanlr. rnek: <% '--ASP bu metni HTML kodu olarak yorumlamaz, metin olarak alglar. Server.HTMLEncode(%Deneme1%<% Deneme2%) %>

Server.MapPath
MapPath(Yolu belirle) Web Server asndan kk dizin (root directory) Servern bulunduu bilgisayarn sabit diskinde, herhangi bir klasr olabilir. rnein IIS iin bu varsaylan deer olarak C:\inetbup\wwwroot klasrdr. zellikle ASP ile program niteliinde siteler yapmaya baladmzda, sitenin ilgili btn dosyalarnn bulunduu bir dizin iin yol belirlemek isteyebiliriz. Bunu Server nesnesinin MapPath (Yolu belirle) metodu ile yapabiliriz: WebDizini = Server.MapPath(/benim_site) Bu komutla WebDizini deikenin deeri muhtemelen yle olacaktr: C:\inetbup\wwwroot\benim_site\

Server.Transfer
Bir ASP dosyasnn ieriini pathde belirtilen ASP dosyasna aktarr. rnek: <'--Transfer.asp> <% Application("Yazar") = "brahim ubuku" Set Application("Nesne1") = Server.CreateObject("ADODB.Connection") Server.Transfer("Karsi.asp")
36 :.

%> <'--Karsi.asp> <% Response.Write "Transfer.asp" For Each Item in Application.Contents If IsObject( Application.Contents(Item)) Then Response.Write Item & " objedir.<BR>" Else Response.Write Item & "=" & Application.Contents(Item) & "<BR>" End If Next %>

Server.URLEncode
URLEncode (String) Internette bazen zellikle sayfa adresleri belirtilirken baz deerlerin URL Kodu dediimiz ekilde kodlanm olarak gnderilmesi gerekir. Bu kodlama trnde boluklarn yerine + iareti konmu olmas arttr. Bu tr bilgiler gndereceimiz zaman bu komuttan yararlanlr. rnek: <% Response.Write Server.URLEncode("kelime1 kelime2 kelime3") %> '--eklindeki bir kod Bunu hemen u ekle sokacaktr: <'--Sonuc> kelime1+kelime2+kelime3 <% Response.Write Server.URLEncode("http://www.pclife.com.tr") %> <'--Sonuc> http%3A%2F%2Fwww%2Epclife%2Ecom%2Etr

Session
Bir Web programnza ayn anda ka kii ularsa (yani sayfalarnz ka kii talep ederse), o kadar Session nesnesi oluur; rnek: <% response.write "Yaz Tura!<br>" randomize
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 37

resgelenum=int(rnd*2)+1 IF rasgelenum=1 THEN session("yazi")=session("yazi")+1 ELSE session("tura")=session("tura")+1 END IF response.write "Yaz= " & session("yazi") & "<br>" response.write "Tura= " & session("tura") & "<br>" %>

Session.Codepage
Veritabanndan bireyler yazdrmaya kalktnzda, Trke karakter

problemiyle karlatnzda size byk fayda salayacak bir komut. rnek: <% '--Dil ayarlamas Trke olarak belirlenir. Session.Codepage=1254 %>

Session.SessionID
Kullanc siteye baland zaman Web Server bu kullancya bir oturum numaras verir. Her yeni oturumda bu numara srekli deiir. SessionID metodu ise bu numaray geri dndrr. rnek: <% Response.Write "Sizin Oturum IDniz " & Session.SessionID %> <'--Sonuc> Sizin Oturum IDniz 214088007

Session.Timeout
Kullanc timeout ile belirtilen sre ierisinde sitede herhangi bir ilem yapmad zaman server tarafndan oturum otomatik olarak kesilir. Bu timeot sresi iin varsaylan deer 20 dakikadr. rnek: <%

38 :.

'--35 dakika ierisinde hi bir hareket olmaz ise oturum kapatlr. Session.Timeout = 35 %>

Session.Contents
Session ile tanmlanm tm deikenlerin ieriini zerinde tutar. rnek: <% Session("Yazar") = "brahim ubuku" Set Session("Nesne1") = Server.CreateObject("ADODB.Connection") For Each Item in Session.Contents If IsObject( Session.Contents(Item)) Then Response.Write Item & " objedir.<BR>" Else Response.Write Item & "=" & Session.Contents(Item) & "<BR>" End If Next %>

Session.StaticObjects
StaticObjects Session ile Static yani durgun, oturum boyunca deeri

deitirilemeyen nesneler tanmlamak iin kullanlr. Bu static nesneler "Global.asa" isimli bir dosyada tutuluyor. rnek: <'--Global.asa> <OBJECT RUNAT=Server SCOPE=Session ID=BenimInfo PROGID="MSWC.MyInfo"> </OBJECT> <OBJECT RUNAT=Server SCOPE=Session ID=BenimConnection PROGID="ADODB.Connection"> </OBJECT> <OBJECT RUNAT=Server SCOPE=Session ID=BenimADRot PROGID="MSWC.ADRotator"> </OBJECT> '--Yukarda Server tarafnda BenimInfo, BenimConnection, BenimADRot isimli static nesneler tanmlanmtr. <'--Static.asp> <% '--Session ile tanmlanm tm static objeler for dngsne sokulur. For Each anahtar In Session.StaticObjects '--Taraycya objenin adn yazar.

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 39

Response.Write anahtar & "<BR>" '--for deyimine gnderir. Next %> <'--Sonuc:> BenimInfo BenimConnection BenimADRot

Session_OnStart
"Global.asa" dosyasnn ierisinde bulunur. Kullanc siteye baland anda altrlacak kod bu olay ierisine yazlr. rnek: <'--Bu rnek sitenize toplam ka kii girdiini ve o anda ka kiinin sitenize bal olduunu hesaplar.> <'--Global.asa> '--yazlan script'in VBscript olduu ve server tarafnda alaca bildirilir. <script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("OturumSayisi") = 0 '--Site ilk giri yapldnda OturumSayisi ve ZiyaretiSayisi deikenleri sfrlanr. Application("ZiyaretciSayisi") = 0 '--Ziyareti 10 dakika ierisinde yeni bir tercih yapmaz ise Session yani oturum nesnesi server tarafndan kapatlr. Session.Timeout = 10 End Sub Sub Session_OnEnd() '--Oturum kapatldnda oturumsayisi bir azaltlr. Application("OturumSayisi ") = Application("OturumSayisi ") 1 End Sub Sub Session_OnStart() '--Siteye balanldnda yani yeni bir oturum yapldnda OturumSayisi bir artrlr. Application("OturumSayisi ") = Application("OturumSayisi ") + 1 '--Siteye balanldnda yani yeni bir oturum yapldnda ZiyaretciSayisi bir artrlr. Application("ZiyaretciSayisi ") = Application("ZiyaretciSayisi ") + 1 End Sub

40 :.

</script> <'--Olay.asp> <% Response.Write "u an siteyi " & Application("OturumSayisi ") & " kii ziyaret ediyor. Site u ana kadar toplam " & Application("ZiyaretciSayisi ") & " kez ziyaret edildi." %> <'--Sonuc> u an siteyi 1 kii ziyaret ediyor. Site u ana kadar toplam 1 kez ziyaret edildi.

Session_OnEnd
"Global.asa" dosyasnn ierisinde bulunur. Kullanc site ile olan balantsn kestii anda altrlacak kod bu olay ierisine yazlr. rnek: <'--Bu rnek sitenize toplam ka kii girdiini ve o anda ka kiinin sitenize bal olduunu hesaplar.> <'--Global.asa> '--yazlan script'in VBscript olduu ve server tarafnda alaca bildirilir. <script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("OturumSayisi") = 0 '--Site ilk giri yapldnda OturumSayisi ve ZiyaretiSayisi deikenleri sfrlanr. Application("ZiyaretciSayisi") = 0 '--Ziyareti 10 dakika ierisinde yeni bir tercih yapmaz ise Session yani oturum nesnesi server tarafndan kapatlr. Session.Timeout = 10 End Sub Sub Session_OnEnd() '--Oturum kapatldnda oturumsayisi bir azaltlr. Application("OturumSayisi ") = Application("OturumSayisi ") - 1 End Sub Sub Session_OnStart() '--Siteye balanldnda yani yeni bir oturum yapldnda OturumSayisi bir artrlr. Application("OturumSayisi ") = Application("OturumSayisi ") + 1 '--Siteye balanldnda yani yeni bir oturum yapldnda ZiyaretciSayisi bir artrlr. Application("ZiyaretciSayisi ") = Application("ZiyaretciSayisi ") + 1 End Sub
Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 41

</script> <'--Olay.asp> <% Response.Write "u an siteyi " & Application("OturumSayisi ") & " kii ziyaret ediyor. Site u ana kadar toplam " & Application("ZiyaretciSayisi ") & " kez ziyaret edildi." %> <'--Sonuc> u an siteyi 1 kii ziyaret ediyor. Site u ana kadar toplam 1 kez ziyaret edildi.

Session.Abandon
Abandon, istenildiinde kullancnn oturumunu kesmek iin kullanlr. rnek: <'--Abandon1.asp> <% Response.Write "Sizin Oturum IDniz " & Session.SessionID Session("Yazar") = "brahim ubuku" Session.Abandon Response.Write " Yazar Ad: " & Session("Yazar") %> <'--abandon2.asp> <% Response.Write " Sizin Oturum IDniz " & Session.SessionID %> <'--Sonuc> <'--Abandon1.asp> Sizin Oturum IDniz 214088007 Yazar Ad: brahim ubuku <'--Abandon2.asp> Sizin Oturum IDniz 214088013

Session.Contents.Remove
Session ile tanmlanm deikenleri silmek iin kullanlr. rnek: <% Session("yazar") = "Application Maker" Session("yayintarihi") = "14/7/2000" Set Session("Nesne1") = Server.CreateObject("ADODB.Connection") Session.Contents.Remove(1) Session.Contents.Remove("yayintarihi")
42 :.

For Each Item in Application.Contents If IsObject(Session.Contents(Item)) Then Response.Write Item & " objedir.<BR>" Else Response.Write Item & "=" &Session.Contents(Item) & "<BR>" End If Next %> Grld zere session ile tanmlanm yazar deikeni silindii iin sonu ekrannda gzkmedi. <'--Sonuc:> Nesne1 objedir.

Session.Contents.RemoveAll
Session ile tanmlanm tm deikenleri siler. rnek: <% Session.Contents.RemoveAll( ) %>

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 43

ASP VE VERTABANI (DATABASE)


Veri Tabanna (Database) Balanma Yollar:

I. Yntem (ODBC DSN kullanarak)


<% '--Deiken tanmland. dim conDB '--Veritaban nesnesi oluturuldu. Set conDB=Server.CreateObject("ADODB.Connection") '--Buradaki MyDSN yerine veritabannn ODBC'deki DSN (Data Source Name'i) yazlacak. conDB.open "MyDSN" %>

II. Yntem (ODBC DSN'den bamsz)


<% '--Deikenler tanmland. dim conDB, dsnpath '--Veritaban nesnesi oluturuldu. Set conDB=Server.CreateObject("ADODB.Connection") '--Access balant bilgisi ile veritaban ald. conDB.open "DRIVER={Microsoft Access Driver (*.mdb)};" & _ "DBQ=" & Server.MapPath("MyDatabase.mdb") %>

III. Yntem (SQL Server)


<% '--conDB deikeni tanmland. dim conDB '--Balant nesnesi oluturuldu. Set conDB=Server.CreateObject("ADODB.Connection") '--SQL balant bilgisi ConnectionString deieknine aktarlyor. ConnectionString= "Provider=SQLOLEDB;Server=<ip address>;database=<dbname>;" '--SQL balant bilgisi oluturmaya devam ediliyor. ConnectionString= ConnectionString& "uid=<uid>;pwd=<pwd>;network=DBMSSOCN" '--Balant ald. ConnDB.open ConnectionString %>

44 :.

KAYNAKLAR
http://www.bcr-online.com http://www.webteknikleri.com http://www.emrah.com http://www.aspci.com http://www.aspturk.com http://www.pclife.com.tr/egitim http://www.programlama.com http://www.aspnedir.com http://www.evcilasp.cjb.net CAL, Hakk: Active Server Pages ASP Programclar iin temel asp rehberi, Pclife dergisi eki CAL, Hakk: Active Server Pages ASP Uygulamal Web Program rnekleri, Pclife dergisi eki

Seval ZBALCI seval.ozbalci@bayar.edu.tr - Internet Programlama Ders Notu - CB Turgutlu MYO .: 45

Anda mungkin juga menyukai