| COMPONENTS Kuşkusuz ASP deki Sunucu objeleri ASP programcıları için bulunmaz bir nimet. Çünkü bunlar ASP yi zenginleştiren ve daha interactive yapan öğelerdir. Nelerdir bunlar ? ASP nin normalde standart onbir tane sunucu bileşeni vardır. Bunlar; - Ad Rotator Bileşeni - Browser Capabilities Bileşeni - Content Linking bileşeni - Content Rotator Bleşeni - Page Counter Bilşeni - Permission Checker Bileşeni - Counters Bileşeni - MyInfo Bileşeni - Tools Bileşeni - Status Bileşeni Bunlar tabii Microsoft ile beraber gelen standart IIS bileşenleridir. Hepsi bunlarla sınırlı değil tabii. ıleri seviye olarak kendi Bileşenlerinizi bile yazabilirsiniz. Bunu VB 6.0 da ActiveX bileşenleri olarak yaratabilir ve derleyebilirsiniz. Birde hazır ticari amaçla yapılmış sunucu bileşenleri vardır, bunlarda Sunucu sahipleri tarafından Sunuculara kurulup hizmete sunulan bileşenlerdir. Bunlarada 3.parti sunucu bileşenleri olaral adlandırabiliriz. File Uploader, Mail sender, Asp Tear gibi değişik bileşenler buna örnek olabilir. Biz burda kısaca Standart sunucu bileşenlere göz atacağız. Ad Rotator Bileşeni: Bu bileşen, bizlere ASP sayfalarımızda değişik imajlar yahut Grafikler göstermemize olanak sağlayan bir bileşendir.Daha ziyade ticari amaçlar için kullanılabilir diyebiliriz. Her defasında eriştiğimizde değişen Bannerlar buna güzel bir örnek teşkil ediyor. Sadece Banner grafiklerini değiştirmeklede kalmayıp, bunlara kaçar defa tıklandığını sayabilen ve birtakım istatistiklerde tutabilen bir bileşendir. Bileşen nesnesinin kullanım şekli; <% Set NesneAdRotator = Server.CreateObject("MSWC")%> Genelde bu bileşenin kullanım amacı yukarıda belirttiğim gibi Ticari kullanımdır. Bu tür bir obje yaratmak için birden fazla adım gerektirir. Öncelikle bileşen nesnesini oluştururuz ve daha sonrası Ad Rotator Schedule dosyasını yaratırız. Bu bileşen Adrot.dll içinde oluşturulur. Browser Capabilities Bileşeni: Bu bileşen, bize sayfalarımıza gelen ziyaretcilerin kullnadıkları Tarayıcılar (Browser) hakkında bir fikir verir. Her ne kadar IE ve Netscape en çok kullanılan Tarayıcılar olsalar bile diğer başka Tarayıcılarda mevcuttur. İşte bu tüm Tarayıcların desteklediği Html tagları, javascripler, ActiveX ler vs. vardır. Bu konu hakkında (destekleme konusu) Browscap.ini dosyasını incelemenizi ve araştırmanzı önerebilirim. Win 98 de Windows/system directory sinde NT de ise Winnt/system32 klasörünün nün içinde bulunur. Ayarları ile oynamamanızı öneririm.. İşte bu bileşen ile bir tarayıcının hangi özellikleri desteklediğini öğrenebiliriz. Bunu HTTP başlığını kullanarak user agent dediğimiz ve içerdiği Server Variables ile sağlayabiliriz. <% = Request.Server.Variables("HTTP_USER_AGENT") Content Linking bileşeni: Bu aslında basit ama faydalı bir Bileşendir. Bunu, esasen bir kitapdaki index sayfası gibi görebilirsiniz. Bulunduğumuz bir sayfanın içinden Sitede bulunan diğer linkleri gösteren ve içerisinde bize ileri veya geri hareket etmemizi sağlar. Kullanım şekli aşağıdaki gibidir; <% Set NesneSonrakiSay = Server.CreateObject("MSWC.nextLink") %> Kısa bir örnek ile bunu açıklayalım: <% Set SonrakiSay = Server.CreateObject("MSWC.nextLink") zCounter = SonrakiSay.GetListCount("index.txt") For z = 1 To zCounter %> Content Rotator Bileşeni: Ad Rotator Bileşeninin daha basit bir şeklidir. Grafikleri değil, text içerikli dosyalara aynı desteği sağlar.(bkz.Ad Rotator Bileşeni) Permission Checker Bileşeni : Bu bileşen bir kullanıcının herhangi bir dosyayı okuması için yetkisi olup olmadığını kontrol eder, ve IIS in şifre doğrulama özelliğini kullanarak çalışır. Kısacası, bir sitede farklı kullanıcılar için sayfaları yetkiye göre izlenip izlenememesini ayarlayabilirsiniz. Anonim, Basic ve NTML şeklinde üç değişik şifre kontrolü sağlamak mümkündür. My Info Bileşeni : Bu bileşen, Server yöneticisi tarafından sağlanan kşişsel bilgilerin saklanması için kullanılır. Yani içerik, e-mail, adres vs. tipi bilgiler tutlduğu, parametre olarak oluşturulan bir formdur. Hani bilirsiniz, makinanıza PWS yada IIS kurarken, ilk bir default page oluşturulur. ışte bu MyInfo bunu ta kendisidir. Burda kişisel bilgiler bulunur. Bu bilgiler MyInfo.xml adlı bir dosyada tutulur. Peki web de bunun bize faydası nedir? Faydası, mesela sayfalarda e-mail adresi oluşturdunuz. Myinfo daki mail adresini değiştirdiğiniz zaman tüm asp sayfalarındaki mail adresiniz değişmiş olur. Tabii bunu Html deki css ile karıştırmıyoruz. Örneğin: <% var ref = '<a href = "mailto:" response.write (ref+MyInfo.Email'">+'Mail'+'</a>') %> bu şekilde <a>....</a> arasında kalan kısmı oluşturmuş olursunuz. xml özelliğini kullanarak kendi etiketlerinizide kullanabilirsiniz. Tools Bileşeni : <% Set Tool = server.CreateObject("MSWC") %> Bu bileşen bizlere, aps ye bazı fonksiyonlar yani ek işlevsellikler eklememize olanak tanır. Mesela, Tools.FileExist metodu ile dosyaların var olup olmadığını kontrol edebiliriz.Sunucu pluf inlerini kontrol edebilir veyada Bir Html formunu oluşturabilirsiniz. Status Bileşeni : Bu bileşen, server durum bilgsinini içeren bir nesne oluşturur. Yani server durumunu bildirir. COOKIE'LER VE KULLANIM ALANLARI Cookie(çerez) ler sayesinde istemcinin bilgisayarında bazı bilgiler saklanabilir Bu bilgiler kişisel bilgilerin veya sitede o kullanıcıyla ilgili bilgilerin saklanması için kullanılabilirler. Cookie "response" nesnesinin bir koleksiyonudur. Cookielerde bilgiler isim-değer çiftleri şeklinde tutulurlar kullanıcının bilgisayarına yollanırken de bu şekilde yollanırlar. Örnek: response.cookie("isim")="xxx" Bir cookiede birden fazla alt anahtar bulunabilir. Örnek: response.cookie("aaa")("bbb")("ccc")="xxx" Cookielerin "expires" adynda bir özeliği vardır Bu şekilde cookienin kulanıcı bilgisayarında hangi tarihe kadar saklanacağı belirtilebilir. Örnek: response.cookie("xx").expires="feb 11,2000" Bu ifade ile bu cookienin 11 şubat 2000'e kadar bilgisayarda saklanacağını belirtilir. Cookie bilgilerinin alınması ise şu şekilde olur.. response.cookie("xxx")="aaa" şeklinde kullanıcı bilgisayarına yollanan cookie Request.cookie("xxx") şeklinde çağırılıp bir değişkene atanarak kullanılabilir. Genel olarak tüm cookiler bir klasör altında saklanır "windows/cookies" gibi... Cookielerin Haskey denilen özelikleri belirtilerek başka sitelerin aynı çereze erişmesi,çerezin saklanacağı path'in belirtilmesi gibi işlemlerde yapılabilir INCLUDE - SERVER.TRANSFER Include bir sayfanın kodlarını mevcut sayfaya ekler. ASP'de ise Server.Transfer bu işi yapar. Mesela; Bu kodu ASP taglarının dışına yazabiliriz. Fakat; <% Server.Transfer("veri.asp") %> bu başlı başına bir ASP komutudur. Daha çok Include kullanılır; fakat uzmanlar Server.Transfer kullanmayı öneriyorlar. NOT: Bu kodları nereye koyarsanız, oraya eklenir. Yani anlaşıldığı gibi bunu menü, anket, üye girişi, şifre kontrol gibi yerlerde kullanıyoruz. RESPONSE NESNELERİ "response" bir ASP nesnesidir ve sunucudan Ziyaretciye çıktılar Gönderir. Şimdi sırasıyla response nesnelerini tanıyalım: response.write: .asp sayfası içinde istedigimiz degişken ya da yazıların görünmesini saglayabiliriz. Örnek verecek olursak: <% @LANGUAGE=VBScrip CODEPAGE=1254 %> <% d=Mehmet Selçuk Batal response.write("Bu Dersi, Editör: ") response.write(d) response.write "Hazırlamıştır" %> response.write'nin kısa yazım biçimi ise; <%=(degişken veya sabit) response.flush: Sunucu sayfa içinde bu ifadeye rastlarsa, tampon(buffer) hafızada tuttuğu degerleri, browser'a gönderir: <% @LANGUAGE=VBScrip CODEPAGE=1254 %> <%response.Buffer=true%> Bu Satır tompon hafızata saklanan satır.</p> <%response.Flush%> Buyazı ise Flush metodundan sonra yazılmıştır Bu işlem çok hızlı olacagından, bize normal bir sayfa yükleniyormuş gibi gözükür. response.end: Sunucu bu satırı gördügünde işlemi durdurur ve tampon hafızadaki degerleri browser'e gönderir ve sciptin çalışması durur. <% @LANGUAGE=VBScrip CODEPAGE=1254 %> <%response.Buffer=true%> Bu yazıyı yazdıktan sonra response.end metodu çalıştırılmışıt o yüzden burdaki yazılardan sonrakiler gözükmeyecekler</p> <%response.end%> Bu yazı hiçbir zaman gözükmeyecek </p> response.clear: Sunucu bu methodu görene kadar tampon hafızada tuttuğu bütün bilgileri siler. Yani response.end'in tam tersi bir işlem yapar. <% @LANGUAGE=VBScrip CODEPAGE=1254 %> <%response.Buffer=true%> Bu satırlar sunucunun tampon hafızasında saklanıyorlar ama bu satırlardan sonra response.Clear metodu ile silinecek ve gözükmeyecekler</p> <% response.Clear %> response.redirect: Sunucu bu sayfada bu ifadeye rastlarsa çalışmasını durdurup belirtilen URL adresindeki sayfayı browser'a getirir. response.Redirect "yönlendirecegimiz Sayfa.asp" response.expires: Ziyaretci sunucudan sayfayı istedigi zaman, bu sayfalar ziyaretcinin bilgisayarında geçiçi bir bellekte saklanır. Ziyaretci tekrar aynı sayfaya geldigi zaman browser ilk önce, bu bellekte arar, bulursa görüntüler. Ancak siz bunu istemeyebilirsiniz veya bunun olmaması gereken bir durum vardır. Bunu engellemek için yani sayfanın her seferinde sunucudan gönderilmesini saglamak için kullanabilirsiniz. <% response.Expires=0 %> Değeri sıfır yaparak geçici bellekte saklanmasını engelledik. İstersek bunu belirli bir tarihe kadar saklanmasını saglayabiliriz. Yani istedigimiz tarihte silinir. <% response.ExpiresAbsolute=#May 01,2001 08:30:00# %> SERVER DEĞİŞKENLERİ VE SUNUCU BİLGİLERİ ALL_HTTP İçindeki bütün degişkenler ve değerleri ALL_RAW İçindeki bütün degişkenler ve değerleri ni İstemci şeklinde gösterir. APPL_MD_PATH Web sunucusunun ISAPLL'in varsayım olarak kullandıgı kök dizin. APPL_PHYICAL_PATH Web server sunucusunun varsayım olarak kullandıgı kök dizin yolu. AUTH_PASSWORD Web sunucusunun bağlanmak için kullangıgı parola. AUTH_TYPE Web sunucusunda kullanılan kimlik denetim yöntemi. AUTH_USER Web sunucusuna bağlanmak için kullanılan kullanıcı adı. CERT_COOKIE Kullanılan güvenlik sertifikası tarafından kullanıcıya verilen kimlik bilgisi. CERT_ISSUER Sertifikanın verildigi - alındığı kurum. CERT_FLAGS Sertifikanın oldugunu belirten bir bit. CERT_KEYSIZE SSL için bağlantı anahtar değeri. CERT_SECRETKEYSIZE Özel Anahtar değeri. CERT_SERIALNUMBER Sertifikanın seri numarası. CERT_SERVER_SUBJECT Sertifikanın konusu. CONTENT_LENGTH İstemcinin gönderdiği bilgi kümesinin boyutu. CONTENT_TYPE Kullanıcıdan alınan bilgilerin GET y ada POST olduğu tür. HTTPS Bağlantı güvenli ise ON, değilse OFF. INSTANCE_ID Web sunucusunun aynı anda çalışma sayısı. INSTANCE_META_PATH Web sunucusunun meta bilgi yolu. LOGON_USER Kullanıcının win_NT yada win_2000'de oturum acma adı. LOCAL_ADDR İstemci IP adresi. REMOTE_ADDR Web sunucusunun IP adresi. REMOTE_HOST Web sunucusunun adı. SERVER_PROTOCOL Sunucunun çalıştıgı http sürümü. SERVER_SOFTWARE Sunucu programının adı ve sürümü. Bunları bir örnekle daha iyi anlarsınız ve kullanabilirsiniz <html> <title>Sunucu Bilgileri</title> Tarayıcı & Kullanıcı Yazılımı : <%response.write (Request.ServerVariables ("http_user_agent")) %> IP Adresi : <%response.write (Request.ServerVariables ("remote_addr")) %> Domain Adı : <%response.write (Request.ServerVariables ("server_name")) %> Web sunucusunun çalışma sayısı : <%response.write (Request.ServerVariables ("INSTANCE_ID")) %> Çalışmakda olan script adı : <%response.write (Request.ServerVariables ("SCRIPT_NAME")) %> HTTP sürümü : <%response.write (Request.ServerVariables ("SERVER_PROTOCOL")) %> Programın Adı ve Sürümü : <%response.write (Request.ServerVariables ("SERVER_SOFTWARE")) %> Geçerli URL : <%response.write (Request.ServerVariables ("URL")) %> |