tag:blogger.com,1999:blog-23379425990499809122009-07-14T05:55:30.478-07:00Asp Web Programlama DersleriWeb Programlama Türkçe Kaynak Destek Sitesigoogleyecevaplarnoreply@blogger.comBlogger32125tag:blogger.com,1999:blog-2337942599049980912.post-61227707591485589612008-10-27T15:34:00.001-07:002009-07-14T05:55:30.494-07:00ASP NEdir<h4>ASP (Active server pages / Aktif Sunucu Sayfaları)</h4> <br>ASP bir Microsoft teknolojisidir. <br> <br>Sunucu taraflı bir teknoloji olan ASP, 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.<br> <h4>ASP NASIL İŞLİYOR?</h4> Tarayıcıya açmasını istediginiz dosyanın adresini yazıp çagırdığımızda (Sunucu) kendisinden icra etmesini istediğiniz dosyayı arar bulur ve eğer bulursa, bu dosyayı hemen &quot;asp.dll&quot; adlı bir programa iletir. asp.dll'de aldığı bu dosyayı hemen yorumlamaz. &quot;Global.asa&quot; adlı dosyanın çalışıp çalışmadığını kontrol eder. <br> <br>Asp.dll önce gelen dosyada hangi script dilinin kullanıldığına bakar. Ve buna göre kendini hazırlar. Asp.dll sonra bu derlediği bilgileri, tamamen asp kodlarından ayrılmış, temiz bir halde browser'a gönderir. Bizde böylece sadece HTML kodlarını görürüz. <br> <br>Kendi bilgisayarınızda asp kodlarınızı çalıştırabilmeniz için eger NT tabanlı bir işletim sistemi kullanıyorsanız bilgisayarınıza IIS kurmalı ve asp dosyalarınızı ISS kurduktan sonra oluşan C:Inetpubwwwroot klasörune yerleştirmelisiniz.<br> <br>Kişisel bilgisayarınızda denema.asp adında hazırlıgınız bir asp dosyasını Internet browserınızda çalıştırmak için broswer'in adres satırına http://localhost/deneme.asp yazıp enter derseniz deneme.asp dosyanız ISS tarafından işlendikten sonra browser’ e yollanacaktır.<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-6122770759148558961?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com1tag:blogger.com,1999:blog-2337942599049980912.post-79851926104389288282008-10-27T15:32:00.001-07:002008-10-27T15:32:29.713-07:00Değişkenler Değişken Kullanma<h4>DEGİŞKENLER</h4> <h4>DEGİŞKEN BİLDİRİMİ</h4> VBScript'te degiskenler için esneklik had safhadadir. Degisken bildirim zorunlulugu bulunmamaktadir. Ve buna bağli olarak degişken türü bildirimi de yoktur. <br> <br>Degişkenleri tanımlamak istiyorum diyorsanız Bunu DIM komutunu kullanmalısınız. DIM, Dimension (boyutlandır) kelimesinden kısaltılmıştır.<br> Değişkenlere verilecek ismimlerin anlaşılır olması programın okunulurluğunu kolaylaştırır. Ayrıca değişken tanımlamaları ile ilgili bazı kurallar mevcuttur. Bu kurallar aşağıda verilmiştir:<br> 1- Değişken ismi bir harf ile başlamalıdır<br> Ad1,Ad2 şeklinde değişken tanımı yapılabilir fakat 1Ad veya 2Ad kullanımı yanlıştır.<br> <br>2-Değişken isminde boşluk bulunamaz. Bunun yerine alt çizgi karakteri kullanılabilir.<br> Adi_Soyadi doğru kullanımdır. Değişken isimlerinde türkçe karekterler kullanılmaz.<br> 3-Değişkene verilecek isim Vbscript komutlarını içeremez<br> Dim bir değişken ismi olamaz.<br> <br> 4-Değişken ismi 255 karakterden fazlada olamaz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> DIM Gun, Ay, Ogrenci, Not<br> Gun = &quot;Sali&quot;<br> Ay = &quot;Mart&quot;<br> Ogrenci = &quot;Selcuk&quot;<br> Not = 5<br> %&gt;</div> <br> Bir ASP sayfasının birinci satırı olarak <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% OPTION EXPLICIT %&gt;</div> <br>yazarsanız size tanımlamadığınız değişkenleri tanımlamadan programınızı çalıştırma izni vermeyecektir. <br> <br>Ayrıca değişken adını yazarken hata yapmanızı önlemektir. VBScript sizin hata yaptığınızı bilemeyeceği için yanlış kelimeyi yeni bir değişken sayacaktır. Değer atamadığınız bu yeni değişkeni kullandığınız yerlerde ya programınız hata verir, ya da kendisine doğru görünen işlemler yapar, fakat beklediğiniz sonucu elde edemezsiniz. OPTION EXPLICIT, yanlış yazdığınız değişkeni yeni değişken sayarak önceden tanımlanmamış değişken kullandığınızı düşünerek, duracaktır.<br> <h4>SABİT DEĞERLER</h4> VBScript'te bir kere verdiğiniz değeri hiç değişmeyen unsurlar vardır. Sabit değer, bütün ASP sayfası boyunca (hatta isterseniz, bütün site, yani Uygulama boyunca) değişmeden kalır. Bu değerleri Const (constant, sabit kelimesinden türetilme) komutuyla belirtiriz: <br> Const Deger = 123654 <br> Const SirketinAdi = &quot;Freelancer Web Tasarım &quot; <br> Const Slogan = &quot;WebMastering&quot; <h4>DİZİ DEĞİŞKENLERİ</h4> Verilerin ard arda tutulmasını sağlayan değişkenlere diziler diyoruz.Şimdi örnek olarak 5 elemanlı bir dizi oluşturalım.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim dizi(4)<br> %&gt;</div> <br>burada dikkat edeceğiniz husus 5 elemanlı bir dizi için &quot;4&quot; sayısı yazılması.Bunun nedeni dizi indisi dediğimiz değerler 0 dan başlar.Böylelikle 0-1-2-3-4 diye saydığımızda 5 elemanlı bir dizi elde etmiş oluruz.İkinci örnek olarak 10 elemanlı bir dizi tanımlamamız gerektiğinde dizi(9) yeterli olacaktır.<br> <br>Şimdi 5 elemanlı bir dizi tanımladık fakat bu 5 elemanında tuttuğu herhangi bir değer yok.Bunlara bi değer atayacaksak bunu 2 yöntem ile yapabiliriz.Ya direk olarak dizi indislerini belirtiriz yada diğer yöntem olarak bir seri şeklinde verileri gireriz.<br> <br>Örnek :<br> İndis belirterek değer atama<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> dizi(0) = &quot;Mete Kaan&quot;<br> dizi(1) = &quot;Alp Uygur&quot;<br> dizi(2) = &quot;Atila Yayla&quot;<br> dizi(3) = &quot;Tuncay Efe&quot;<br> dizi(4) = &quot;Cengiz Orhan&quot;<br> %&gt;</div> <br> Seri şekilde değer atama<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> dizi = Array(&quot;Mete Kaan&quot;,&quot; Alp Uygur&quot;,&quot; Atila Yayla&quot;,&quot; Tuncay Efe&quot;,&quot; Cengiz Orhan &quot;)<br> %&gt; </div> <h4>REDİM :</h4> Bazen dizinin yeninden boyutlandırma ihtiyacı duyabilirsiniz. Bunu Redim ile diziyi yeniden boyutlandırabiliriz. Unutulmaması gereken nokta dizinin yeniden boyutlandırılmasında eski datalar dizi içerisinden silinir. Eski verileri kullanmak istersek rendim prereserve komutu kullanılmalıdır.<br> ReDim dizi(15)<br> rendim prereserve dizi(15) <h4>ÇOK BOYUTLU DİZİLER </h4> Bazı uygulamalarda matris yapısında dizi tanımlamalarına ihtiyaç duyulabilir. Böyle durumlarda çok boyutlu dizi tanımları kullanılabilir. Çok boyutlu dizi tanımı kullanılacak dizinin boyutları verilmek süreti ile gerçekleştirilebilir. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim dizi(2,2)<br> %&gt;</div> <br>Değer atamasını da yapabiliriz.Burada bilmemiz gereken 1,1 1,2 ilk değerin X ikinci değerin Y koordinatında ilerlediğidir.<br> <br> Buna göre değer atayacak olursak<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> <br>dizi(1,1) = 1<br> dizi(1,2) = 2<br> dizi(2,1) = 2<br> dizi(2,2)= 1<br> <br> %&gt;</div> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim dizi (3,3) <br> %&gt; </div> <br> Şeklinde bir tanımlama 3 X 3 boyutlarında bir dizi oluşturur bu diziye atama yapılmak istenildiğinde ise: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> dizi (0,0)=&quot;test&quot; <br> dizi (0,1)=&quot;deneme&quot; <br> dizi (0,2)=&quot;test2&quot; <br> dizi (1,0)=&quot;deneme2&quot; <br> dizi (1,1)=&quot;111-23-4&quot; <br> dizi (1,2)=&quot;iskender&quot; <br> %&gt; </div> <h4>DEGISKENLERDE VERI TÜRLERI</h4> <br>VBScript integer, real, string, boolean vs.. türü temel veri tipi tanimlamalarindan yoksun bir dildir. Değişkenin hangi türde olduğunu o degişkene yaptıgınız atama ile anlar.<br> <br>Örnek :<br> <br>degisken_1 = 15<br> degisken_2 = &quot;15&quot;<br> degisken_3 = &quot;Zeytinyagli yiyemem amaan, basma da fistan giyemem aman.&quot;<br> degisken_4 = true<br> degisken_5 = Sen Turgay , daglarin kartali, bir yanim biçak yarasi bir<br> <br>degisken_1 ; sayısal tipte degişken olacaktır.<br> degisken_2 ; “ “ işaretleri kullanıldıgından sayısal degil, alfa-sayısal bir tipte degişken oldu.<br> degisken_3 ;. String tipte bir degişken olur<br> degisken_4 ; boolean tipte bir degişken olur<br> degisken_5 ; “ “ işareti kullanılmadığından gerçeli bir atama olmaz ve hata verir. <h4>VERİ TİPLERİ</h4> <h4>VARIANT:</h4> Vbscript dilinde kullanılacak değişkenleri barındıracak ve bunlar için gerekli adres alanını ayarlayacak bir tip veri tipi bulunur. Bu değişken tipi variant olarak adlandırılır. Variant veri tipi değişkene atanan değere göre kullanılan veri tipini otomatik olarak kendisi belirler. Variantın tipi atancak değere bağlı olarak değişir ayrıca kullanılan bu değişkenlere atanan veri doğal olarak verinin tipide program sırasında değişebilir. Aşağıda ki örneğe göz atalım:<br> <br> 1- Byte<br> 1 Baytlık işaretsiz tamsayı tipidir. 0 ile 255 arasında değer alabilir.<br> 2-Integer<br> 2 Baytlık işaretli tamsayı tipidir. -32.768 ile 32.767 arasında değer alabilir.<br> 3-Long<br> 4 Baytlık işaretli tamsayı tipidir. -2.147.483.648 ile 2.147.483.647 arasında değer alabilir. <br> 4-Long<br> 4 Baytlık ondalık sayı tipidir. +- 3.402923 X 10 38 ile +- 1.401298 X 10-45 arasında değer alabilir. <br> 5-Double<br> 8 Byte lık ondalık sayı tipidir. +- 1.79769313486232 X 10308 ile +-4.94065645841247 X 10-324 arasında değer alabilir.<br> 6-String<br> Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilen sayısal olmayan veri tipidir. Bu tip karakter sayısı +10 byte yer kaplar. String bir veri tipi oluşturmak için değişkene atanacak değer &quot; &quot; işaretleri içerisinde yer almalıdır.<br> Adi=&quot;Gökhan&quot;<br> 7-Date<br> 8 byte yer kaplayan bu değişkene 1/1/100 ile 31/12/9999 arasındaki tarih ve 0:00:00 ile 23:59:59 arasındaki saat atmaları yapılabilir. Bu tipteki değişkenlere atama string veri tipinde olduğu gibi veya # # karakterleri arasında yapılabilir.<br> Dogum_tarihi=#17/07/1979#<br> 8-Boolean<br> 2 byte lık bir veri tipi olmasına rağmen sadece True veya False değerleri alabilir. Yani daha çok iki durumlu değişkenlerde kullanılır. Bu tipten tanımlanan değişkenlere direkt True veya False atanabileceği gibi sayısal değerlerde atanabilir.. Atanan sayı 0 ise False, değilse True kabul edilir.<br> Evli=True<br> Evli=1 <h4> VERİ TİPİ DEĞİŞTİRME İŞLEMLERİ</h4> Bazen program içerisinde atnımlanmış veya içeriğine bir değer atanmış bir tipdeki değeri başka bir tipe değiştirme ihtiyacı duyulabilir. Bir veri itpini bir değerden diğerine çevirmek için kullanılabilecek veri dönüşüm fonksiyonları aşağıda verilmiştir.<br> Ccur (ifade) :Parantez içinde verilen ifadeyi Currency veri tipine dönüştürür.<br> <br>Cdbl (ifade) :Parantez içinde verilen ifadeyi Double veri tipine dönüştürür.<br> <br>Cint (ifade) :Parantez içinde verilen ifadeyi Integer veri tipine dönüştürür.<br> <br>Clng (ifade) :Parantez içinde verilen ifadeyi Long veri tipine dönüştürür.<br> <br>CVar (ifade) :Parantez içinde verilen ifadeyi Variant veri tipine dönüştürür.<br> <br>CBool (ifade) :Parantez içinde verilen ifadeyi Booolean veri tipine dönüştürür.<br> <br>CByte (ifade) :Parantez içinde verilen ifadeyi Byte veri tipine dönüştürür.<br> <br>CDate (ifade) :Parantez içinde verilen ifadeyi Date veri tipine dönüştürür.<br> CStr(ifade) : Parantez içinde verilen ifadeyi integer alt tipine dönüştürür <h4>ASP de String Fonksiyonlar </h4> <br>Degisken =” ASP Ögreniyorum”<br> <h4>InStr</h4> Karakter dizilerinin içinde baska bir karakter dizisini veya karakteri sorgulamaya yarayan bir komut olan InStr, bulunup bulunmadigini, bulunursa kaçıncı karakter veya başlama noktasından itibaren kaçıncı karakterde başladıgına dair bilgileri verir. <br> <br> Örnegin<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> <br>Dizi = &quot;ASP kursu içerisinde VBScripti isliyoruz&quot;<br> AranacakStr = &quot;VB&quot;<br> <br>Kacinci = InStr(Dizi, AranacakStr)<br> <br>Response.Write Kacinci<br> <br> %&gt;</div> <br>Burada ekranımızda görünecek olan sayi 22’dir. &quot;VB&quot; yazisi Dizi degişkeninde 22. karakterden başlamaktadır. InStr’nin bir diger kullanimi ise, hangi karakterden sonra başlayacagimizdir. <h4>Len(KarakterDizisi)</h4> Bir karakter dizisinin kaç harf veya karakterden olustugunu vermektedir.<br> <br> Örnegin: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Dizi = &quot;Erciyes&quot;<br> Response.Write Len(Dizi)<br> %&gt; </div> <br>Ekrana 7 olarak yansiyacaktir. <h4>Ucase</h4> Vereceğiniz bir String'in tüm karakterlerini büyük harfe çevirir. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniString = UCase(Degisken)<br> %&gt;</div> <br>Yeni String'in değeri: &quot;ASP OGRENIYORUM&quot; olacaktır. <h4>Lcase</h4> Vereceğiniz bir String'in tüm karakterlerini küçük harfe çevirir. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniString = LCase(Degisken)<br> %&gt; </div> <br>Yeni String'in değeri: &quot;asp ögreniyorum” olacaktır. <h4>LTrim, RTrim, Trim</h4> Verdiğiniz String'in (sırasıyla) solunda yani baş tarafında; sağında yani sonunda ve hem başında ve hem de sonundaki boşlukları temizler. <h4>Space</h4> İçinde, vereceğiniz sayı kadar boşluk olan boş bir String oluşturur. Örneğin <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Bosluk = Space(20)<br> %&gt; </div> <br> Bosluk değişkenin değeri &quot; &quot; (20 boşluk) olacaktır. <h4>String</h4> İstediğiniz sayıda ve istediğiniz bir karakterle bir String oluşturur. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniString = String(3, &quot;*&quot;)<br> %&gt; </div> <br> YeniString değişkeninin değeri &quot;***&quot; olacaktır. <h4>Left(Degisken, Sayi):</h4> Bir yazı dizisindeki karakterlerin, soldan &quot;Sayı&quot; kadarını gösterir<br> <br> Örnegin:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Soldanbes = Left(&quot;ASP ögreniyoruz.&quot;, 5)<br> Response.Write soldanbes<br> %&gt;</div> <br>Sonucumuz &quot;ASP ö&quot; olacaktır. <br> <br>Right(Degisken, Sayi): Bir yazi dizisindeki karakterlerin, sagdan &quot;Sayi&quot; kadarını gösterir. Kullanımı Left ile aynidır. <h4> Mid: </h4> Bir String'in içinde başlangıç noktasını ve karakter olarak boyunu verdiğiniz alanda yer alan String'i verir. <br> <br> Örnegin: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Degisken = &quot;ASP ögreniyoruz&quot;<br> YeniDegisken = Mid(Degisken, 4, 2)<br> Response.Write YeniDegisken<br> %&gt; </div> <br>&quot;ög&quot; sonucunu alacagiz bu sorgudan sonra. Burada 4 baslangiç karakterimiz, 2 ise kaç karakter alacagimizi temsil ediyor. <h4>Replace: </h4> Degişkende belirli karakterleri baskalarıyla degiştirmemize yarıyor Replace komutu. <br> <br> Örnek vermek gerekirse:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Degisken = &quot;ASP ögreniyoruz&quot;<br> YeniDegisken = Replace(Degisken, &quot;uz&quot;, &quot;m ben de&quot;)<br> Response.Write YeniDegisken<br> %&gt;</div> <br>Ekrana yazilacak sonuç &quot;ASP ögreniyorum ben de&quot; olacaktır. <h4>Tam Sayı Elde etmek</h4> <h4>Int()</h4> Bize bir sayının tam sayı bölümünü verir.<br> <br>Örnek: <br> <br> KesirliSayi değişkeninin değeri 123,234567 olsun. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Tamsayi = Int(KesirliSayi)<br> %&gt;</div> <br>Tamsayi değişkenin değeri 123 olur. <h4>Round()</h4> fonksiyonu, kesirli bir sayıyı yukarı veya aşağı &quot;yuvarlayarak&quot; tam sayı haline getirir. Bu kez ki elimizdeki KesirliSayi değişkeninin değeri 5,6 olsun. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Tamsayi = Int(KesirliSayi)<br> %&gt; </div> <br>işleminden sonra Tamsayi değişkenin değeri 6 olur. <br> <br>Kesirli sayı 56,2 ise, Round() fonksiyonu bize 56 değerini verir. <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-7985192610438928828?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-41162614617461721382008-10-27T15:31:00.001-07:002008-10-27T15:31:54.255-07:00Page Counter Sayaç; Sayaçlar<h4> PAGE.COUNTER</h4> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Set MyPageCounter = Server.CreateObject(&quot;MSWC.PageCounter&quot;)<br> MyPageCounter.PageHit<br> %&gt;<br> Bu Web sayfası &lt;%= MyPageCounter.Hits %&gt; kez görüntülenmiştir. </div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-4116261461746172138?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-850206151181800692008-10-27T15:30:00.002-07:002008-10-27T15:31:16.383-07:00Recordset Kayıt İşlemleri<h4> Recordset Uygulamaları</h4> Veritabanına dayanan Web uygulamalarımızda sadece veriyi okumak değil veriyi güncelleştirmek veya silmek isteyebiliriz. Bunun için doğruca ADO'nun .Recordset metodundan yararlanmamız gerekir. .Recordset metodu ne yapar? Tıpkı ekranınızdaki bir yazının içinde duran imleç (cursor) gibi hayalî bir imleci götürür verilerinizin en başına koyar. Bu hayali imleci veritabanı üzerinde dolaştırmak ve gittiği yerdeki değeri okutmak bizim işimizdir. <br> <br>.Recordset metodu, ile bir veritabanını okuyacak imleci üç şekilde ayarlayabilirsiniz: <br> <br> Static (Duragan)SELECT komutu icra edilir ve okunan kayıt arzu ettiğiniz değişkene yazılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenStatic) <br> <br> Forward only (Sadece ilerle) İmleç veritabanı içinde sadece ileri doğru gider ve her seferinde bir kayıt okunur. (Varsayılan imleç türü budur.) (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenForwardonly) <br> <br>Dynamic (Dinamik) Veritabanına ulaşan ve değişiklik yapan başka bir kullanıcı varsa, bu değişiklik size anında yansıtılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenDynamic) <br> <br> Bu yöntemlerden birini seçmekle veriyi belirli bir okuma tarzında açmış olursunuz. Bu yöntemlerden hangisini seçtiğinizi .Recordset metodunu kullanacak olan .Open komutunun argümanı olarak açıkça belirtmeniz gerekir. ADO, bunun için sizden sayılar halinde argümanlar ister.<br> <br> Öncelik veri tabanımızda uygulamalarına gecmeden once ADO konusunda anlatılan uyeler.mdb (wwwroot dizininde olmalı) dosyası üzerinden açıklamalar yapılacagını bildirmek isterim.<br> <br> Ayrıca NT işletim sistemi kullanıyorsanız wwwroot klasörünün ve uyeler.mdb dosyasının güvenlik özelliklerini düzenlemeniz gerekir Örneklerin düzgün çalışabilmesi için. <h4> AddNew : Yeni Kayıt grime</h4> Bir veritabanına yeni kayıt eklemek istediğimizde, Recordset'in .AddNew (yeni ekle) metodundan yararlanırız. Bu girilen yeni kayıt Mdb Dosyamızda en son kayıtda yer alacaktır. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Set VT= Server.CreateObject(&quot;ADODB.Connection&quot; ) <br> VT.Open &quot;DBQ=&quot; &amp; Server.MapPath(&quot; uyeler.mdb&quot; ) &amp; &quot;;DRIVER={Microsoft Access Driver (*.mdb)}&quot;<br> Set KS = Server.CreateObject (&quot;ADODB.RecordSet&quot; ) <br> Sql = &quot; Select * from table1 &quot;<br> KS.Open sql,VT,1,3<br> %&gt;<br> <br>&lt;%<br> KS.AddNew<br> KS (&quot;uyeAdi&quot;) = &quot;Mete&quot;<br> KS (&quot;uyeSoyadi&quot;) = &quot;Uygur&quot;<br> KS (&quot;email&quot;) = &quot;meteuygur@xxxxx.com&quot;<br> KS (&quot;mesaj&quot;) = &quot;Benim Mesajım&quot;<br> KS.Update<br> %&gt;<br> <br>&lt;%<br> KS.close<br> set KS=nothing<br> VT.close<br> set VT=nothing<br> %&gt;</div> <h4> Update: Kayıt Guncelleme </h4> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Set VT= Server.CreateObject(&quot;ADODB.Connection&quot; ) <br> VT.Open &quot;DBQ=&quot; &amp; Server.MapPath(&quot; uyeler.mdb&quot; ) &amp; &quot;;DRIVER={Microsoft Access Driver (*.mdb)}&quot;<br> Set KS = Server.CreateObject (&quot;ADODB.RecordSet&quot; ) <br> Sql = &quot; Select * from table1 where uyeNo = 1&quot;<br> KS.Open sql,VT,1,3<br> %&gt;<br> <br> &lt;%<br> KS (&quot;uyeAdi&quot;) = &quot;Kaan&quot;<br> KS (&quot;uyeSoyadi&quot;) = &quot;Ateş&quot;<br> KS (&quot;email&quot;) = &quot;kaanates@xxxxx.com&quot;<br> KS (&quot;mesaj&quot;) = &quot;Kaanın Mesajı&quot;<br> KS.Update<br> %&gt;<br> <br> &lt;%<br> KS.close<br> set KS=nothing<br> VT.close<br> set VT=nothing<br> %&gt;</div> <br>Bu Örnekte uyeNo =1 Olan kayıt verilen degerlere gore güncellenir. . Eger 1 nolu kayıt yoksa asp kodumuz hata verecektir.<br> <h4> Delete : Kayır Silme</h4> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Set VT= Server.CreateObject(&quot;ADODB.Connection&quot; ) <br> VT.Open &quot;DBQ=&quot; &amp; Server.MapPath(&quot; uyeler.mdb&quot; ) &amp; &quot;;DRIVER={Microsoft Access Driver (*.mdb)}&quot;<br> Set KS = Server.CreateObject (&quot;ADODB.RecordSet&quot; ) <br> Sql = &quot; Select * from table1 where uyeNo = 1&quot;<br> KS.Open sql,VT,1,3<br> %&gt;<br> <br> &lt;%<br> KS.Delete<br> %&gt;<br> <br> &lt;%<br> KS.close<br> set KS=nothing<br> VT.close<br> set VT=nothing<br> %&gt;</div> <br>Bu Örnekte uyeNo =1 Olan kayıt Silinecektir. Eger 1 nolu kayıt yoksa asp kodumuz hata verecektir.<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-85020615118180069?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-19480658319447264522008-10-27T15:30:00.001-07:002008-10-27T15:30:50.704-07:00ADOVBS Nedir ActiveX<h4>ADOVBS.inc (ActiveX Data Objects (ADO) for Visual Basic Script (VBS or VBScript)) </h4> <br>ADO+ODBC yoluyla kuracağımız veri bağlantıları, çoğu zaman adeta şifreli ifadeler içerebilir ve bir çok komutun argümanı öğrenmesi zor sayılar halinde verilir.<br> <br>Microsoft ve kullanılmaya hazır ASP Uygulamaları üreten firmalar, bu karmaşık ifadeleri düz metinler olarak ifade etmeye yarayan haricî dosyalar (include files) hazırlar ve sunarlar. Bunlar arasında en yaygın olanı Microsoft'un ADOVBS (adovbs.inc) dosyasıdır.<br> <br>Bu dosya, Server tarafından icra edilir ve ADO nesnesinin sayı halindeki bütün argümanlarını anlaşılabilir İngilizce kelimelere çevirir. <br> <br>Veritabanı bağlantılarının dosyasıyla ADO nun bulunduğu sayfalarda genellikle aşağıdaki şekilde ifadeler vardır.<br> <br>Rs.open dbconn , sql , 3 ,1 <br> <br> Aslında burada &quot;3&quot; ve &quot;1&quot; sayıları bir sabiti(Constant) belirtir. işte ADOVBS.inc dosyası bu sabitlerin bulunduğu özel bir dosyadır.Aşağıda dosyanın bir kısmı gösterilmektedir.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> '--------------------------------------------------------------------<br> ' Microsoft ADO<br> '<br> ' Copyright (c) 1996-1998 Microsoft Corporation.<br> '<br> '<br> '<br> ' ADO constants include file for VBScript<br> '<br> '--------------------------------------------------------------------<br> '---- CursorTypeEnum Values ----<br> Const adOpenForwardOnly = 0<br> Const adOpenKeyset = 1<br> Const adOpenDynamic = 2<br> Const adOpenStatic = 3 <br> ………%&gt;</div> <br>Görüldüğü gibi bu dosyanın içerisinde ADO'nun sabitleri vardır. Yani adovbs.inc dosyasını sayfamıza include edersek Yukarıdaki rs için yazdığımız ifadeyi <br> rs.Open dbconn, sql , adOpenStatic , adLockReadOnly <br> şeklinde yazabiliriz. adovbs.in kullanımı kodu daha okunur bir hale getirir.Ayrıca bu şekilde bizim ADO sabitlerini bilmemize gerek kalmaz (4 kursor tipinden hangi sayının hangisine ait olduğunun akılda tutulmasına gerek yoktur. ) : ) .<br> <br>.inc uzantısı hakkında :<br> <br>inc uzantısı o dosyanın bir &quot;include&quot; dosya olduğunu belirtir. Bu uzantı yerine başka bir uzantıda kullanılabilir .Genelde include edilen dosyalarda görünmesini istemediğimiz veriler varsa bunlar .asp formatında kaydedilir.Çünkü .inc veya başka uzantılı bir dosya diske kaydedilebilirken .asp uzantılı bir dosya derlenerek html formatına dönüştürülür.<br> <br>Ado sabitlerinin kullanılabilmesi için dosyanın kullanılacak sayfaya include edilmesi gerekir.<br> <br>&lt;!-- #include file=&quot;adovbs.inc&quot; --&gt; <br> veya<br> &lt;!--#include virtual=&quot;/adovbs.inc&quot;--&gt;<br> <br>Bu sabitler ile recordset nesnesini 4 şekilde kullanbiliriz.<br> <br>Forward Only: Bu imlecimizle, veritabanındaki kayıtlar arasında sadece ileri doğru ilerleyebiliriz. Geri yani yukarı gitme imkanımız yoktur. Ayrıca yeni kayıt ekleyemeyiz. Ve eğer biz açtıktan sonra, o anda başkaları tarafından değiştirilen veriler varsa, veritabanını yeniden kapatıp açana kadar göremeyiz. Eğer Adovbs.inc'le birlikte kullanıcaksak kod içindeki kullanımı adOpenForwardOnly'dir. <br> <br>Static: Durağan anlamına gelir. ForwardOnly'e ek olarak, yukarı doğru ilerleyebilir ve yeni kayıtlar ekleyebiliriz... Adovbs.inc'le birlikte kullanıldığında kod kullanımı, adOpenStatic'tir... Eğer biz açtıktan sonra, o anda başkaları tarafından değiştirilen veriler varsa, veritabanını yeniden kapatıp açana kadar göremeyiz.<br> <br>Dynamic: Adından da anlaşılabileceği gibi, bu cursor tipi, tam özelliklere sahip cursor tipidir. Yukarı ve aşağıya ilerleyebilir, yeni kayıt ekleyebilir ve değiştirebiliriz. Eğer biz açtıktan sonra, o anda başkaları tarafından değiştirilen veriler varsa, veritabanını yeniden kapatıp açmadan anında görebiliriz...Kod sayfasında, Adovbs.inc'le birlikte kullanıcaksak, kod içinde kullanımı adOpenDynamic'tir...<br> <br>Keyset: Bu metodumuzla, başkaları tarafından değiştirilen kayıtları görebiliriz... Cursor'umuz yukarı ve aşağı ilerleyebilir. Adovbs.inc'le birlikte kod içinde kullanımı, adOpenKeyset'tir...<br> <br>Kod içinde kullandığımız, adOpenStatic'in hemen yanındaki ise RecordSet nesnemizin kilit özelliğidir. Farklı çeşitlerde kilitler vardır. Bir kaç tanesini yazacağım. <br> <br>AdLockReadOnly: Kayıtlı verilerimizin değiştirilmesini, üzerine yazılmasını engellememizi sağlar. Yeni kayıt girişini engeller. Sadece Listelemeye izin verir... <br> <br>AdLockOptimistic: Bu metodumuz da kayıtlarımızın güncelleştirilmesini, yeni kayıtlar eklememizi, ve istersek silmemizi sağlar. <br> AdLockPessimistic: Bu metodumuz da eğer bir veritabanı üzerinde işlem yapıyorsak, işlemlerimiz bitene kadar, diğer işlem yapabilecek kişileri engellemk için RecordSet'e kilit koyar.<br> <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-1948065831944726452?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-6918351418139016592008-10-27T15:29:00.002-07:002008-10-27T15:30:20.211-07:00ServerVariables Server Değişkenleri<h4> ServerVariables (Server Değişkenleri)</h4> <br> HTTP Server Değişkenleri Kolleksiyonunun elemanları şöyle sıralanır<br> Kendi Web Server’ımızın o anda çalışmakta olan ASP sayfası için oluşturduğu ortamın değişkenleridir. Bunların arasında ziyaretçinin Browser’ına ilişkin bilgiler de vardır. <br> <br> Örnek olarak aşagıdaki asp sayfasını çalıştırarak kendi server’ ımızın değeişkenlerini inceleyelim.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;HTML&gt;<br> &lt;HEAD&gt;<br> &lt;TITLE&gt;HTTP ServerDegişkenleri &lt;/TITLE&gt;<br> &lt;/HEAD&gt;<br> &lt;BODY&gt;<br> &lt;CENTER&gt;<br> HTTP Server Değişkenleri Kolleksiyonu<br> &lt;/CENTER&gt;<br> &lt;TABLE BORDER=1&gt;<br> &lt;TR&gt;&lt;TD&gt;&lt;B&gt;Değişkenin adı&lt;/B&gt;&lt;/TD&gt; &lt;TD&gt;&lt;B&gt;Değeri&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;<br> &lt;% For Each key in Request.ServerVariables %&gt;<br> &lt;TR&gt;<br> &lt;TD&gt;&lt;% = key %&gt;&lt;/TD&gt;<br> &lt;TD&gt;<br> &lt;%If Request.ServerVariables(key) = &quot;&quot; Then<br> Response.Write &quot;&amp;nbsp;&quot; <br> Else <br> Response.Write Request.ServerVariables(key)<br> End If<br> Response.Write &quot;&lt;/TD&gt;&quot;%&gt;<br> &lt;/TR&gt;<br> &lt;% Next %&gt;<br> &lt;/TABLE&gt;<br> &lt;p&gt;<br> Host'unuzun adı:&lt;B&gt; &lt;%=Request.ServerVariables(&quot;HTTP_HOST&quot;)%&gt;&lt;/B&gt;<br> &lt;/BODY&gt;<br> &lt;/HTML&gt;</div> <br> Bu sayfayı serverdefreg.asp olarak kaydedelim ve çalıştıralım.Bir HTTP Server’ın serverdefreg.asp sayfasını çalıştırdığı anda oluşturduğu ortama şekil veren bütün değişkenleri göreceksiniz. Bu değişkenleri programlama yoluyla değiştiremeyiz; sadece okuyup, yararlanabiliriz.<br> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="130"><br>Değişkenin adı <br></td> <td> <br>Değeri<br></td> </tr> <tr> <td><br>ALL_HTTP <br></td> <td><br>HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde “HTTP_” öneki vardır.<br></td> </tr> <tr> <td><br>ALL_RAW<br></td> <td><br>HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser’ın verdiği şekilde gösterilir.<br></td> </tr> <tr> <td><br>APPL_MD_PATH<br></td> <td><br>Web Server’ın ISAPI.DLL dosyası için varsaydığı kök dizin<br></td> </tr> <tr> <td><br>APPL_PHYSICAL_PATH<br></td> <td><br>Web Server’ın varsaydığı kök dizinin gerçek yolu<br></td> </tr> <tr> <td><br>AUTH_PASSWORD <br></td> <td><br>Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola<br></td> </tr> <tr> <td><br>AUTH_TYPE<br></td> <td><br>Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi<br></td> </tr> <tr> <td><br>AUTH_USER<br></td> <td><br>Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı<br></td> </tr> <tr> <td><br>CERT_COOKIE <br></td> <td><br>Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)<br></td> </tr> <tr> <td><br>CERT_FLAGS<br></td> <td><br>Sertifikanın varlığını gösteren bit değeri<br></td> </tr> <tr> <td><br>CERT_ISSUER<br></td> <td><br>Sertifika varsa veren kurum<br></td> </tr> <tr> <td><br>CERT_KEYSIZE<br></td> <td><br>Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri<br></td> </tr> <tr> <td><br>CERT_SECRETKEYSIZE <br></td> <td><br>Özel anahtar değeri<br></td> </tr> <tr> <td><br>CERT_SERIALNUMBER<br></td> <td><br>Sertifika seri no.<br></td> </tr> <tr> <td><br>CERT_SERVER_ISSUER<br></td> <td><br>Sertifikayı veren merci<br></td> </tr> <tr> <td><br>CERT_SERVER_SUBJECT<br></td> <td><br>Server Sertifikasının “konu” alanı değeri<br></td> </tr> <tr> <td><br>CERT_SUBJECT<br></td> <td><br>İstemci Sertifikasının konu alanı değeri<br></td> </tr> <tr> <td><br>CONTENT_LENGTH <br></td> <td><br>İstemcinin gönderdiği bilgi yumağının boyutu<br></td> </tr> <tr> <td><br>CONTENT_TYPE<br></td> <td><br>Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür<br></td> </tr> <tr> <td><br>GATEWAY_INTERFACE <br></td> <td><br>Web Server’ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1 <br></td> </tr> <tr> <td><br>HTTPS <br></td> <td><br>Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF<br></td> </tr> <tr> <td><br>HTTPS_KEYSIZE<br></td> <td><br>Secure Sockets Layer için bağlantı anahtar sayısı<br></td> </tr> <tr> <td><br>HTTPS_SECRETKEYSIZE <br></td> <td><br>Özel Server sertifikasının gizli anahtar sayısı<br></td> </tr> <tr> <td><br>HTTPS_SERVER_ISSUER<br></td> <td><br>Özel Server sertifikasının veren merci<br></td> </tr> <tr> <td><br>HTTPS_SERVER_SUBJECT <br></td> <td><br>Özel Server sertifikasının konusu<br></td> </tr> <tr> <td><br>INSTANCE_ID<br></td> <td><br>Web Server’ın aynı anda kaç kere çalışmakta olduğu<br></td> </tr> <tr> <td><br>INSTANCE_META_PATH <br></td> <td><br>Şu anda çalışmakta olan Web Server’ın Meta yolu<br></td> </tr> <tr> <td><br>LOCAL_ADDR<br></td> <td><br>İstemcinin IP numarası<br></td> </tr> <tr> <td><br>LOGON_USER<br></td> <td><br>İstemci Windows NT sisteminde ise oturum açma adı<br></td> </tr> <tr> <td><br>PATH_INFO<br></td> <td><br>Çalışmakta olan ASP’nin göreli yolu ve adı<br></td> </tr> <tr> <td><br>PATH_TRANSLATED<br></td> <td><br>Çalışmakta olan ASP’nin gerçek yolu ve adı <br></td> </tr> <tr> <td><br>QUERY_STRING<br></td> <td><br>İstemcinin gönderdiği bilgi kümesi<br></td> </tr> <tr> <td><br>REMOTE_ADDR<br></td> <td><br>İstemcinin Host’unun (ISS’inin) IP’si<br></td> </tr> <tr> <td><br>REMOTE_HOST<br></td> <td><br>İstemcinin Host’unun (ISS’inin) adı<br></td> </tr> <tr> <td><br>REMOTE_USER<br></td> <td><br>İstemcinin gerçek adı<br></td> </tr> <tr> <td><br>REQUEST_METHOD<br></td> <td><br>İstemciden bilgi isteme yöntemi (GET veya POST)<br></td> </tr> <tr> <td><br>SCRIPT_NAME<br></td> <td><br>Çalışmakta olan ASP’nin adı<br></td> </tr> <tr> <td><br>SERVER_NAME<br></td> <td><br>Sunucu’nun adı<br></td> </tr> <tr> <td><br>SERVER_PORT<br></td> <td><br>Sunucuya bağlantının geldiği TCP kapı numarası<br></td> </tr> <tr> <td><br>SERVER_PORT_SECURE<br></td> <td><br>TCP kapısı güvenli ise 1, değilse 0<br></td> </tr> <tr> <td><br>SERVER_PROTOCOL<br></td> <td><br>Server’ın çalıştırdığı HTTP’nin sürümü<br></td> </tr> <tr> <td><br>SERVER_SOFTWARE<br></td> <td><br>Server programının adı ve sürümü<br></td> </tr> <tr> <td><br>URL<br></td> <td><br>Şu anda geçerli URL<br></td> </tr> </table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-691835141813901659?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-90447991065431614802008-10-27T15:29:00.001-07:002008-10-27T15:29:22.710-07:00Test Fonksiyonları<h4> Test Fonksiyonları </h4> <br> VBScript'te kullandığımız bazı değişkenlerin o andaki durumu, programımızın akışını kontrolde kullanacağımız bilgiyi sağlayabilir. Sözgelimi bir değişkenin değeri boş ise, ziyaretçimizin formu tam olarak doldurmadığını düşünebiliriz. VBScript, bize değişkenlerin durumunu sınamamız için bazı özel fonksiyonlar sağlar. Bu özel fonksiyonlardan dönen değer True (doğru) veya False (yanlış) olur; doğru sonucun değeri -1, yanlış sonucun değeri ise 0'dır:<br> <br> <table width="400" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="65"><br>IsArray:<br></td> <td width="329"><br>Bir değişkenin dizi-değişken (Array) olup olmadığını sınar. <br> </td> </tr> <tr> <td><br>IsDate:<br></td> <td><br>Bir değişkenin değerinin tarihe (Date) çevrilip çevrilemeyeceğini sınar.<br> </td> </tr> <tr> <td><br>IsEmpty:<br></td> <td><br>Bir değişkenin tanımlanıp değer atanmış olup olmadığını sınar. <br> </td> </tr> <tr> <td><br>IsNull:<br></td> <td><br>bir değişkenin geçerli bir değer tutup tutmadığını sınar. <br> </td> </tr> <tr> <td><br>IsNumeric:<br></td> <td><br>Bir değişkenin sayı olarak işleme tabi tutup tutulamayacağını sınar <br></td> </tr> <tr> <td><br>IsObject:<br></td> <td><br>Bir ifadenin geçerli bir ActiveX veya OLE nesnesine referansta bulunup bulunmadığını sınar. <br></td> </tr> <tr> <td><br>TypeName:<br></td> <td><br> Bir değişkenin türünü belirtir.<br> </td> </tr> <tr> <td><br>VarType:<br></td> <td><br>Bir değişkenin türünü belirten sayıyı verir.<br> </td> </tr> </table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-9044799106543161480?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-33104825658942438032008-10-27T15:23:00.004-07:002008-10-28T07:46:20.171-07:00ADO Nedir Uygulamaları<h4>ADO Nedir?</h4> <br> ADO (ActiveX Data Objects), Microsoft'un veritabanı uygulamaları için geliştirdiği bir bileşendir. IIS ve PWS ile birlikte otomatik olarak kurulur. Biz ADO'yu ASP sayfalarımızdan veritabanına erişmek ve veritabanı üzerinde işlemler yapmak üzere kullanacağız. <br> <br> ADO ile veritabanı uygulamaları standart bazı adımları içerir;<br> <br> &#8226; Veritabanı bağlantısının oluşturulması<br> &#8226; Veritabanı başlantısının a&ccedil;ılması<br> &#8226; Kayıt dizisinin oluşturulması<br> &#8226; Kayıt dizisinin açılması <br> &#8226; ...Veritabanı ile yapılacak işlemler <br> &#8226; Kayıt dizisinin kapatılması<br> &#8226; Veritabanı bağlantısının kapatılması. <h4>Bağlantı Yolları</h4> Veritabanına bağlanmak için iki seçeneğiniz var. Birincisi DSN (Data Source Name) ile bağlanmak ikincisi ise DSN kullanmadan, dosyanın fiziksel yolunu göstererek bağlanmak. DSN bağlantılarını windows ve hatta unix sistemlerinde Microsoft'un ODBC (Open Database Connectivity/Açık Veritabanı Bağlantısı) sunucusu yönetir. <br> <br> İkinci yolda, DSN ba&eth;lantısı kullanmadan bir veritabanı bağlantısı oluşturabiliriz. Kuşkusuz bul yol &ccedil;ok daha kolaydır. <h4>ODBC ile DSN Bağlantısı</h4> &Ouml;ncelikle bilgisayarınızda veritabanı oluşturma programı &ouml;rnegin Microsoft access yüklü olduğunu Kabul ediyorum.<br> <br>MS Access Programını Kullanarak ilk once uyeler.mdb db dosyasını oluşturacagız. Bu veri tabanında aşagıdaki iki tabloyu tanımlayın.<br> <br> Table1<br> <br> <table width="75%" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="21%"><br>Alan Adi:<br></td> <td width="79%"><br>Veri t&uuml;r&uuml;<br></td> </tr> <tr> <td><br>uyeNo<br></td> <td><br>AutoNumber (Birincil Anahtar/Primary Key)<br></td> </tr> <tr> <td><br>uyeAdi<br></td> <td><br>metin<br></td> </tr> <tr> <td><br>uyeSoyadi<br></td> <td><br>metin<br></td> </tr> <tr> <td><br>email<br></td> <td><br>metin<br></td> </tr> <tr> <td><br>mesaj<br></td> <td><br>memo<br></td> </tr> </table> <br> Denetim Masası'nı açın ve adı ODBC, ODBC 32 Bit, ya da ODBC Data Source olan simgeyi çalıştırın; ikinci sekme olan System DSN'i tıklayın.<br> <br> <img src="http://3.bp.blogspot.com/_AB693zUP138/SQclVrAn49I/AAAAAAAABG4/NH_6F5O9FLc/s320/odbc.jpg" border="0" alt="ASP Veri Uygulamaları ODBC" id="BLOGGER_PHOTO_ID_5262215743858533330" /> <br> A&ccedil;ilacak kutuda Add/Ekle d&uuml;gmesini tiklayarak, yeni veri kaynagi olusturmak i&ccedil;in ilk adim olan veriyi okumakta kullanacagimiz s&uuml;r&uuml;c&uuml;y&uuml; se&ccedil;ebilecegimiz kutunun a&ccedil;ilmasini saglayin. Burada, yukarida olusturdugunuz veri dosyasina uygun s&uuml;r&uuml;c&uuml;y&uuml; se&ccedil;in. &Ouml;rnek uyeler.mdb'yi kullaniyorsaniz, birinci se&ccedil;enek olan Microsoft Access Driver'i se&ccedil;meniz gerekir. Son d&uuml;gmesini tiklayin ve Access dosyasinin kurulumunu yapmaya baslayalim.<br> <br> <img src="http://1.bp.blogspot.com/_AB693zUP138/SQclVSY-EpI/AAAAAAAABGw/0bd4dyH2_Aw/s320/ado.jpg" border="0" alt="ASP Veri Uygulamaları ADO" id="BLOGGER_PHOTO_ID_5262215737249763986" /> <br>Buradaki Data Source Name (DSN, Veri Kaynak Adı), biraz sonra ADO nesnesiyle ilgili metodları ve deyimleri yazarken kullanacağımız veri adıdır; buraya &quot;uyeler&quot; yazın; çünkü örneklerde bu veriye &quot;uyeler&quot; adıyla gönderme yapacağız. İsterseniz, Description/Açıklama bölümüne veritabanının niteliğini belirten bir kaç kelime yazabilirsiniz. Sonra, Select/Seç düğmesini tıklayarak ve açılıcak diyalog kutusu yardımıyla veritabanı dosyasını uyeler.mdb dsoyasını bulun; OK/Tamam'ı tıklayarak, veritabanı seçme işlemini tamamlayın.<br> <br>DSN oluşturma kutularını sırasıyla OK/Tamam düğmelerini tıklayarak kapatın; &quot;uyeler&quot; verisi, şu andan itibaren bütün Web uygulamalarımızın hizmetine girmiş demektir. Internet sitenize koyacağınız ve veritabanına erişmesi gereken sayfalarınız için bu işlemi gerçek Internet ortamında da yapmak zorundasınız. Veritabanı dosyanızı Internet sitenizde kök dizinine veya bir diğer dizine kopyaladıktan sonra sistem yöneticisine ya elektronik mektupla, ya da evsahibi firmanın yönetim ve teknik destek yardımı sağlayan sayfasında veritabanınızın dosya adını, yolunu, ve DSN olarak kullanmak istedeğiniz ismi bildirerek, bizim burada yaptığımız işi Server yöneticisinin yapmasını sağlamamız gerekir. ADO'nun bize sağladığı imkanlardan yararlanabilmek için onun nesnelerini kullanılırız. Bu bölümde ADO'nun nesneleri ve metodlarını ele alacağız. <h4> Connection (Veritabanına bağlantı)</h4> ADO'dan yararlanabilmek için kullanacağımız ilk nesne Connection'dır. Bu nesne ile veritabanı ile bağlantı sağlarız, yol açarız: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Veriyolu<br> Set Veriyolu = Server.CreateObject(&quot;ADODB.Connection&quot;)<br> Veriyolu.Open &quot;uyeler &quot;<br> %&gt; <br> Recordset (Kayıt dizisi) <p>&lt;%<br> Dim Veriyolu, Kayitdizisi<br> Set Veriyolu = Server.CreateObject(&quot;ADODB.Connection&quot;)<br> Veriyolu.Open &quot;uyeler&quot;<br> Set Kayitdizisi = Veriyolu.Execute(&quot;SELECT * FROM table1&quot;)<br> %&gt;</div> <h4>Recordset.Open</h4> Veritabanına dayanan Web uygulamalarımızda sorun buradaki gibi sadece veriyi okumakla bitmeyebilir; veriyi güncelleştirmek veya silmek isteyebiliriz. Bunun için doğruca ADO'nun .Recordset metodundan yararlanmamız gerekir. <br> <br> Bir veriye bağlantıyı kurduktan sonra kayit dizimizi .Recordset metodu ile sağlayacaksak, yukarıdaki örnek kodumuzu şöyle yazmak gerekir: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Veriyolu, Kayitdizisi, Sorgu<br> Set Veriyolu = Server.CreateObject(&quot;ADODB.Connection&quot;)<br> Veriyolu.Open &quot;uyeler&quot;<br> Set Kayitdizisi = Server.CreateObject(&quot;ADODB.Recordset&quot;)<br> Sorgu = &quot;SELECT * FROM table1&quot;<br> Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic<br> %&gt;<br> Dns Siz ba&eth;lant&yacute;<br> &lt;%<br> Set VT= Server.CreateObject(&quot;ADODB.Connection&quot; ) <br> VT.Open &quot;DBQ=&quot; &amp; Server.MapPath(&quot; uyeler.mdb&quot; ) &amp; &quot;;DRIVER={Microsoft Access Driver (*.mdb)}&quot;<br> %&gt;</div> <br> <br> Burada, DNS'siz bağlantı için veritabanı dosyasının Server'daki göreli yerini, adını ve hangi sürücünün kullanılacağını belirtiyoruz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Set KS = Server.CreateObject (&quot;ADODB.RecordSet&quot; ) <br> Sql = &quot; Select * from table1 &quot;<br> KS.Open sql,VT,1,3<br> %&gt;</div> <br> <br>Burada da recordset’ i tanımladık ve sql ile tamınlanan sorguda da table1 verileri cagırıyoruz. <h4>ADO Nesnesini Kapamak</h4> Bir ADO Nesnesini kapatmak, close yöntemini çagırmak dişında hiçbir şey gerektirmemektedir. &quot;VT&quot; adlı bir connection nesnesini ve KS RecordSet Nesnesini kapatmak için aşagıdaki örnegi yazın.<br> <br>KS.close<br> VT.close<br> <br>Bir connection nesnesini kapatmayı unutursanız, ASP komut dosyası işleyişi sonunda bunu bulup, kapata bilir ve bunu bellekten çıkarta bilir en azından plan böyle. Uygulamada, yarattıgınız her nesneyi her zaman kapatır ve serbes bırakırsınız, Web sunucunuz daha dengeli olur.<br> <br> Bir Connection nesnesini, kapattıktan sonra bile bellekte kalır. &quot;VT&quot; adlı Connection nesnesini Ve KS RecordSet Nesnesini bellekten çıkartmak için aşagıdaki örnegi kullanabilirsiniz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> set KS=nothing<br> set VT=nothing<br> %&gt; </div> <br> Örnek Kullanm :<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> KS.close<br> set KS=nothing<br> VT.close<br> set VT=nothing<br> </diV><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-3310482565894243803?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-62287559427466002812008-10-27T15:23:00.003-07:002008-10-27T15:23:47.538-07:00Application Uygulamalar Örnekler<h4>APPLICATION</h4> <br>Belirtilen uygulamadaki tanımlı bütün kullanıcıların bilgiyi paylaşmaları için Application nesnesini kullanabiliriz. <br> <br>Application nesnesi birden fazla kullanıcı tarafından paylaşılabildiği için, kullanıcıların bir özelliği aynı anda değiştirme girişimlerini önlemek için Lock ve Unlock yöntemleri kullanılır. Bir örnek yaparak çalışmasını inceleyelim. Bu örneğimizle kullanışlı sayfa sayaçları yapabilirsiniz. Örneği inceleyince daha iyi anlayacağınıza eminim...<br> <br> Aşağıdaki örneği Sayac.asp adıyla kaydedin. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Expires = 0<br> 'Expires sayesinde sayfanın içeriğinin bilgilerinin cache bellekte saklanmasını engelleriz.<br> %&gt;<br> <br>&lt;%<br> If (Application(&quot;Sayac&quot;) = &quot;&quot;) Then<br> 'Bu ziyaretçi için Application başlatılmadıysa başlatılsın.<br> Application(&quot;Sayac&quot;) = 0<br> End If<br> <br>Application.Lock<br> 'Application'ı Kilitliyoruz. Ve kullanıcı giriş yaptıktan sonra 1 değer <br> 'arttırıyoruz. <br> <br> &lt;%<br> Application(&quot;Sayac&quot;) = Application(&quot;Sayac&quot;) + 1<br> Application.UnLock<br> 'Ve tekrar serbest bırakıyoruz. Diğer kullanıcılarla bu Application<br> 'kullanılabilsin diye... <br> %&gt;<br> Bu Sayfaya &lt;%= Application(&quot;Sayac&quot;) %&gt; Kere Giriş Yapıldı.</div> <br> Bu kodu yazıp çalıştırdığımız zaman, sayfayı her yenilediğimizde sayaç bir değeri kadar arttırılacaktır..<br> <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-6228755942746600281?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-29158060351813671722008-10-27T15:23:00.001-07:002008-10-27T15:23:23.102-07:00Errors Hatalar Kodu Açıklamaları<h4> Asp Error:</h4> <br>Asperror objesi ASP script veya asp.dll tarafından oluşan hataların yakalanması için kullanılır. Asperror objesi Server.GetLastError metodu gelen hataları yakalayarak kullanıcıyı standart hataların açıklandığı sayfalara yönlendirmek için kullanılabilir.<br> <br>ASP´de oluşan hataları Server nesnesinin GetLastError alt nesnesiyle öğrenebiliyoruz. GetLastError nesnesinin özelliklerine kısaca değinecek olursak:<br> <br>1. ASPCode: IIS tarafından oluşturulan hata kodunu döndürür.<br> 2. ASPDescription: Oluşan hata ASP ile alakalıysa detaylı bir açıklama döndürür.<br> 3. Category: Hatanın kaynağını döndürür.<br> 4. Column: ASP sayfası içinde hataya sebep olan kodlamanın sütun pozisyonunu döndürür.<br> 5. Description: Hata hakkında kısa bir açıklama döndürür.<br> 6. File: Hata oluşan ASP dosyasının yolunu döndürür.<br> 7. Line: Hatanın kaçıncı satırda oluştuğunu döndürür.<br> 8. Number: Standart COM hata numarası döndürür.<br> 9. Source: Hataya sebep olan kodlar okunabiliyorsa bu kodları döndürür.<br> <br>Sitemizin verdiği hataları bir veri tabanında kaydederek sistemizin performansı hakkında bazı bilgilere ulaşabiliriz. <br> <br>Ayrıca bir hata durumunda server meşgul gibi mesayı ziyaretcinize yollamak isteyebilirsiniz.<br> <br>&lt;% On Error Resume next %&gt; <br> <br>diyerek bir hata durumda bir alt satırdan kodları işlemeye devam edecektir.<br> <h4> ASP Yazarken Karşılaşılan Hatalar, Sebebi ve Çözüm Yolları. </h4> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br>Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Sürücüsü] INSERT INTO deyimi, bilinmeyen alan adı içeriyor: 'KisiPasif'. Adı doğru yazdığınızdan emin olun ve işlemi yeniden deneyin. /uyelik/functions.asp, line 114<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br>Tablonuzta olmayan bir field'e kayıt yapmak istediniz<br> </td> </tr> <tr> <td><br>Çözümü<br></td> <td><br>SQL deyimindeki yazılışı yanlışsa düzeltin. Eğer tabloda böyle bir field yoksa yaratın.<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br>Server nesnesi, ASP 0177 (0x800401F3)<br> Geçersiz ProgID Bu iletiyle ilgili daha fazla bilgi için, lütfen aşağıdaki adresten Microsoft Online Support sitesini ziyaret edin: http://www.microsoft.com/contentredirect.asp<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Server 'ınızın yada PWS 'nin desteklemediği bir bileşen kullanmak istemişsiniz. Örneğin mail gönderme veya asptear.<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> PWS altında çalışıyorsanız : Bu işlemler windows altından yapılamaz. Hosting Server 'ında Çalışıyorsanız : Kullanmak istediğiniz bileşen servera kurulmamış. Firma sorumlusuna başvurun.<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br>Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access Sürücüsü] Çok az parametre. 1 bekleniyor<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> SQL kodu içinde işleme tabi tutmak istediğiniz alan yok<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yazdığın alan adını kontrol edin, tablonun böyle bir alan içerdiğinden emin olun<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> ADODB.Recordset (0x800A0CC1) Öğe, istenen ad veya sıra sayısı ile ilişkili derleme içinde bulunamıyor<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Alan adı bulunamıyor.Ekrana yazdırmak istediğiniz veya kullanmak istediğiniz alan adı tabloda yok<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yazdığınız alan adını kontrol edin, tablonun bu adda bir alan içerdiğinden emin olun<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> ADODB.Recordset (0x800A0BB9) Yanlış türdeki değişkenler kabul edilebilir aralık dışında veya bir başkasıyla çakışan bağımsız değişkenler kullanılıyor<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Recordset'i açmaya çalıştığımız Connection adı bulunamadı veya connection açılmadı.Başka bir sebepte SQL kodu bulunamadı<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Connection'ı açın veya adını kontrol edip, düzeltin.Ya da SQL kodunu yazdığınızdan emin olun<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Sürücüsü] SELECT deyimi, saklı bir sözcük veya yanlış yazılmış veya eksik bir bağımsız değişken içeriyor veya noktalama işareti yanlış<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Yazdığınız SQL kodunda bir sorun var.<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yazdığınız SQL kodunu kontrol ediniz<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Sürücüsü]Genel hata 'Temporary (volatile) Jet DSN for process 0x140 Thread 0x5ec DBC 0x13679bc Jet ' kayıt defteri anahtarı açılamadı.<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Belirttiğiniz adreste veritabanı bulunamadığında çıkar<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yazdığınız yolu veya veritabanını kontrol ediniz<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> &quot;Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Driver Manager] Veri kaynağı adı bulunamadı ve varsayılan sürücü belirtilmemiş&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> DSN adını yanlış yazdınız veya DSN tanımlamadınız.Ya da DSN-Less bağlantı kodu yanlış.<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> DSN adını kontrol edin veya DSN-Less bağlantı kodunu gözden geçirin.<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td><br>Hata<br></td> <td> <br> &quot;Microsoft VBScript çalışma hatası (0x800A004C) Yol bulunamadı&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Bulunmayan bir klasör veya yol yazdığınızda bu hata ile karşılaşırsınız<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yazdığınız yolu kontrol ediniz, klasörün bulunduğuna emin olun<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> Microsoft VBScript çalışma hatası (0x800A0044) Aygıt yok&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Bulunmayan bir sürücüyü çağırmak istediğinizde alırsınız<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Sürücü harfinin bulunduğuna veya doğru olduğuna dikkat edin<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Sürücüsü] Güncelleştirilemiyor. Veritabanı veya nesne salt okunur.&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Veritabanınız salt okunur veya yazma izni olmayan bir yerde ise bu hatayı verir<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Veritabının veya bulunduğu klasörün Salt Okunur olup olmadığını kontrol edin<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> &quot;Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Sürücüsü] 'alan_adi=' sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Sorgulatmak için kullandığınız değer boş.Bu forumdan gelen bir veri olabilir, cookieden alınan bir değer olabilir<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Gelen veriyi kontrol edin<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> &quot;Server nesnesi, ASP 0177 (0x800401F3) Geçersiz ProgID Bu iletiyle ilgili daha fazla bilgi için, lütfen aşağıdaki adresten Microsoft Online Support sitesini ziyaret edin: http://www.microsoft.com/contentredirect.asp.&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Sunucunuzun desteklemediği bir objeyi yaratmak istemişsiniz<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Obje adını kontrol edin, sunucunun desteklediğinden emin olun<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> &quot;Microsoft VBScript çalışma hatası (0x800A000D) Tür uyumsuz: 'a'&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Eğer bir sayı ve metin ile matematiksel işlem yapmak isterseniz veya tarih değelerinde yanlış bir işlem yapmaya kalkarsanız alırsınız<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Yapmak istediğiniz işlemi kontrol ediniz.Değişken türlerini tekrar gözden geçirin<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> &quot;Microsoft VBScript derleme hatası (0x800A0409) Sonlandırılmamış dize sabiti&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Çift tırnak (&quot;) yazmamışsınız.Veya çok fazla yazmışsınız<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Kodları inceleyerek tırnakları düzeltiniz<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> &quot;Microsoft VBScript derleme hatası (0x800A03F6) 'End gerekli&quot;<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> if kontrol kodunu bitirmemişsiniz<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> Gereken yere &quot;end if&quot; yazın.<br></td> </tr> </table> <br> <table width="350" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="46"><br>Hata<br></td> <td width="399"> <br> Active Server Sayfaları, ASP 0116 (0x80004005) Komut yazıları bloğunda etiketin sonu eksik (%&gt;)<br></td> </tr> <tr> <td height="21"> <br>Sebebi<br></td> <td> <br> Kodlarınızı &quot;%&gt;&quot; ile kapatmamışsınız<br></td> </tr> <tr> <td><br>Çözümü<br></td> <td><br> &quot;%&gt;&quot; yazınız<br></td> </tr> </table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-2915806035181367172?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-50607843491212924552008-10-27T15:22:00.001-07:002008-10-27T15:22:52.396-07:00Server Transfer include<h4>INCLUDE </h4> <h4>SERVER.TRANSFER </h4> Include bir sayfanın kodlarını mevcut sayfaya ekler. ASP'de ise Server.Transfer bu işi yapar. Mesela; <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;!-- #include file=&quot;veri.asp&quot; --&gt;<br> Bu kodu ASP taglarının dışına yazabiliriz. Fakat; <br> &lt;%<br> Server.Transfer(&quot;veri.asp&quot;)<br> %&gt;</div> <br> bu başlı başına bir ASP komutudur. Daha çok Include kullanılır; fakat uzmanlar Server.Transfer kullanmayı öneriyorlar. <p>NOT: Bu kodları nereye koyarsanız, oraya eklenir. Yani anlaşıldığı gibi bunu menü, anket, üye girişi, şifre kontrol gibi yerlerde kullanıyoruz.<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-5060784349121292455?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-17611714118115136082008-10-27T15:21:00.000-07:002008-10-27T15:22:18.567-07:00Dosya İşlemleri Uygulaması<h4>ASP'de Dosya işlemleri</h4> <br>Dosya Sistemi Nesnesi (FileSystemObject) - FSO<br> <br>Web Sunucusunun sabit diskinde, sürücüleri, klasörleri ve dosyaları yönetmekte kullanacağımız temel nesnedir.<br> <br>Bu nesnemiz 24 metod ve 1 özellikten oluşmaktadır. Genel olarak bu nesnelere öncelikle göz atalım.<br> <br>FileSystemObject Metodları<br> 1. BuildPath (Mevcut yola isim ekler)<br> 2. CopyFile (Dosya kopyalar)<br> 3. CopyFolder (Klasör kopyalar)<br> 4. CreateFolder (Klasör oluşturur)<br> 5. CreateTextFile (Text dosyası oluşturur)<br> 6. DeleteFile (Dosya Siler)<br> 7. DeleteFolder (Klasör Siler)<br> 8. DriveExists (Sürücüyü kontrol eder)<br> 9. FileExists (Dosyayı kontrol eder)<br> 10. FolderExists (Klasörü kontrol eder)<br> 11. GetAbsolutePathName (Kesin yol ifadesini verir)<br> 12. GetBaseName (Dosya veya klasörün ana ismini verir)<br> 13. GetDrive (Yol üzerindeki sürücüyü getirir.)<br> 14. GetDriveName (Sürücü ismini verir)<br> 15. GetExtensionName (Dosya uzantısını verir)<br> 16. GetFile (Yol üzerindeki dosya nesnesini verir)<br> 17. GetFileName (Dosya ismini verir)<br> 18. GetFolder (Yol üzerindeki klasör ismini verir)<br> 19. GetParentFolderName (Parent klasör ismini verir)<br> 20. GetSpecialFolder (Belirtilen klasörür geri döndürür)<br> .21 GetTempName (Rasgele geçici (cache) bir dosya veya klasör ismi üretir)<br> 22. MoveFile (Dosya taşır)<br> 23. MoveFolder (Klasör taşır)<br> 24. OpenTextFile (Text dosyası açar)<br> <br>FileSystemObject Özellikleri (Properties)<br> 1. Drives (Sürücü nesnesinin bir koleksiyonunu döndürür)<br> <br>Bu metodları inceleyelim<br> <br>BuildPath<br> <br>Verdiğiniz bir yol üzerine verdiğiniz isimde yeni yol ekler. Yol ifadesinin geçerli bir yol ifadesi olması gerekmez. String üzerinde işlem yapar.<br> <br> YeniYol = FSO.BuildPath(yol,eklenecek isim)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniYol = FSO.BuildPath(&quot;C:Inetpubwwwroot&quot;,&quot;images&quot;)<br> %&gt;</div> <br> YeniYol değişkeninin değeri &quot;C:Inetpubwwwrootmages&quot; olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.BuildPath(&quot;Metin&quot;,&quot;Aksu&quot;)<br> %&gt;</div> <br> Çıktısı &quot;MetinAksu&quot; olur.<br> <br> Sadece tek bir isim kullanmak zorunda değilsiniz. &quot;images&quot; yerine &quot;imagesdeneme&quot; şeklinde de verebilirsiniz. Bu durumda da çıktı &quot;C:Inetpubwwwrootmagesdeneme&quot; olacaktır. Bu metodun yaptığı işi aşağıdaki şekilde de yapabilirsiniz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniYol = &quot;C:Inetpubwwwroot&quot; &amp; &quot;&quot; &amp; &quot;images&quot;<br> %&gt;</div> <br> Ama sizin ana ve eklenecek yolunuz fazladan slashlar içeriyorsa yada değişkenler başka yerden alınıyor ve nasıl geldiğini bilmiyorsanız BuildPath sizi bunları temizleme derdinden kurtarır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> YeniYol = FSO.BuildPath(&quot;C:Inetpubwwwroot&quot;,&quot;mages&quot;)<br> %&gt;</div> <br> Çıktısı &quot;C:Inetpubwwwrootmages&quot; olur.<br> <br>CopyFile (dosya kopyala)<br> Bu nesne ile Server üzerinde dosya yaratırız;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Kopyala<br> Set Kopyala=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Kopyala.CopyFile &quot;c:netpubwwwroot spdosya.txt&quot;, &quot;c:netpubwwwrootnedir&quot;, true<br> %&gt;</div> <br>Kodları inceleyelim;<br> Dim Kopyala<br> Set Kopyala=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> <br>&quot;Kopyala&quot; isimli bir değişken yaratmıştık. Ve bu değişkeni FileSystemObject nesnesinde kullanacağımızı belirlemiştik.<br> Kopyala.CopyFile &quot;c:netpubwwwroot spdosya.txt&quot;, &quot;c:netpubwwwrootnedir&quot;, true<br> <br>&quot;Asp&quot; dizini olarak yerini belirlediğimiz dosyayı kopyalıyoruz ve &quot;nedir&quot; dizinine yapıştırıyoruz.<br> <br>Nasıl yapacağımızı öğrendik fakat dikkat etmemiz gereken bir nokta var örnekteki &quot;nedir&quot; dizini server da yoksa hata mesajı ile karşılaşırsınız.<br> CopyFolder<br> <br>Belirtilen bir hedef klasörü tüm alt klasörleri ve dosyaları ile birlikte belirtilen bir hedef klasöre kopyalar.<br> <br>FSO.CopyFolder KaynakKlasor,Hedef,Overwrite<br> <br>KaynakKlasor kopyalanacak olan klasör, Hedef kaynak klasörün kopyalanacağı hedef klasördür. Overwrite ise True veya False değerlerini alarak eğer klasör var ise klasörün üzerine yazılıp yazılmayacağını belirler. True olursa üzerine yazılır. False olursa yazılmaz. Eğer belirtilmez ise varsayılan olarak True kabul edilir.<br> <br>&lt;%<br> FSO.CopyFolder &quot;C:Windows&quot;,&quot;D:Deneme&quot;,True<br> %&gt;<br> <br> Bu kod C sürücüsündeki Windows klasörünü tüm içeriğiyle beraber D sürücüsündeki Deneme isimli klasörün içine kopyalar.Hedef belirtilirken sonunda slash kullanıldığına dikkat edin. Eğer slash kullanmazsanız Windows klasörünün içeriği(kendisi değil) Deneme klasörüne kopyalanır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CopyFolder &quot;C:Deneme*&quot;,&quot;D:Deneme&quot;<br> 'veya<br> FSO.CopyFolder &quot;C:Deneme*&quot;,&quot;D:Deneme&quot;<br> %&gt;</div> <br>Bu şekilde C sürücüsündeki Deneme klasörünün sadece alt klasörleri D sürücüsündeki Deneme klasörüne kopyalanır.<br> <br> Eğer hedef olarak verdiğiniz klasör yok ise oluşturulur ve kaynak klasörün içeriği buraya kaydedilir. Yani farklı kaydetme olayı. Mesela D sürücüsünde WinXP isimli bir klasör yok diyelim. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CopyFolder &quot;C:Windows&quot;,&quot;D:WinXP&quot;<br> %&gt;</div> <br> Bu durumda C sürücüsündeki Windows klasörü D sürücüsüne WinXP ismiyle kaydedilir. Hedef klasör belirtilirken yine slash kullanılmadığına dikkat edin.<br> <br> Eğer XYZ klasörü yoksa<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CopyFolder &quot;C:Windows&quot;,&quot;D:XYZWinXP&quot;<br> %&gt;</div> <br> derseniz hata alırsınız. FSO sizin için bir XYZ klasörü oluşturup bunun içine WinXP'yi oluşturmaz. Ama eğer XYZ klasörü varsa WinXP klasörü yoksa bu oluşturulur ve kaynak klasör içeriği bunun içine kopyalanır. Eğer WinXP klasörü de varsa bu durumda, yukarda belirtildiği gibi, sonda slash kullanılıp kullanılmadığına bağlı olarak kaynak klasör aynı isimle klasör yapısı korunarak veya sadece içeriğiyle bu klasör içine kopyalanır.<br> <br> NOT : FSO ile bu şekilde klasör kopyalayacağınız gibi &quot;FSO ile klasör işlemleri&quot; konusunda göreceğiniz gibi GetFolder ile klasörü bir nesneye atayıp &quot;KlasorNesnesi.Copy Hedef&quot; şeklinde de kopyalayabilirsiniz. Ancak bu şekilde tek bir klasör kopyalayabilirsiniz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> FSO.CopyFolder &quot;C:Windows&quot; , &quot;D:Deneme&quot;, True(False)<br> %&gt;</div> <br> ile <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Set Klasor = FSO.GetFolder(&quot;C:Windows&quot;)<br> Klasor.Copy &quot;D:Deneme&quot;, True(False)<br> %&gt;</div> <br> aynı işi görür.<br> <br> CreateFolder<br> <br>Adından anlayacağınız gibi verdiğiniz klasör içinde verdiğiniz isimde boş bir klasör oluşturur.<br> <br>FSO.CreateFolder YeniKlasor <br> <br> True/False şeklinde bir argümanı yoktur. Eğer oluşturulmak istenen klasör varsa hata verir.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CreateFolder &quot;C:Deneme&quot;<br> %&gt;</div> <br> C sürücüsünde Deneme isimli bir klasör oluşturur<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CreateFolder &quot;C:MetinAksu&quot;<br> %&gt;</div> <br> Eğer C sürücünde Metin isimli bir klasör varsa içine Aksu isminde bir klasör oluşturur. Eğer yoksa yol bulunamadı hatası verir.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.CreateFolder &quot;C:WindowsSystem32MetinAksu&quot;<br> %&gt;</div> <br>System32 klasörü içinde MetinAksu isminde bir klasör oluşturur.<br> <br>CreateTextFile<br> <br> İstediğiniz dizinde adını belirleyebileceğiniz, içine yazı da yazabileceğimiz bir text dosyası yaratmamızı sağlar. Vereceğimiz örnekte yaratılacak text dosyasının uzantısını .txt olarak belirledik siz bunu .asp,.inc,.aspx vs.. olarak ta yapabilirsiniz hatta yarattığınız dosyanın içine asp kodları da yazdırabilirsiniz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Dosya, Yazi<br> Set Dosya=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Set Yazi = Dosya.CreateTextFile (&quot;c:netpubwwwroot spDeneme.txt&quot;, true)<br> Yazi.WriteLine (&quot;ASPnedir?com - deneme mesajı.&quot;)<br> Yazi.WriteLine (&quot;ASP ile text dosyasına mesaj yazdırıyoruz&quot;)<br> Yazi.Close <br> %&gt;</div> <br>Bu kodu yazıp çalıştırırsanız, belirlediğiniz dizinde Deneme.txt isminde bir yazı dosyası yaratılır. Ve içine bizim yazdırdığımız mesajlar yazılır. <br> <br>Kodları denerken dikkat etmeniz gereken klasörün yolunu doğru vermektir.<br> <br> DeleteFile<br> <br> Daha önceden belirlediğimiz dosyayı silmemizi sağlar.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Sil<br> Set Sil=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Sil.DeleteFile (&quot;c:netpubwwwroot spnedirdeneme.txt&quot;)<br> %&gt;</div> <br>Buradaki kodlar ile &quot;aspnedir&quot; dizindeki deneme.txt ismindeki dosyayı siliyoruz.<br> DeleteFolder<br> <br> Belirlediğimiz dizindeki herhangi bir klasörü silmemizi sağlar.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Sil<br> Set Sil=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Sil.DeleteFolder (&quot;c:netpubwwwroot spnedirdeneme&quot;)<br> %&gt;</div> <br>Buradaki kodlar &quot;aspnedir&quot; dizindeki &quot;deneme&quot; isimli klasörü siler. <br> <br>DriveExists<br> <br>Belirttiğiniz sürücünün var olup olmadığını test eder. Eğer var ise True yoksa False değeri döndürür.<br> <br>FSO.DriveExists(&quot;Sürücü Harfi&quot;)<br> <br> Verilecek değer Windows'un sürücüleri isimlendirme kurallarına uymalıdır. Yani bir sürücüyü ifade etmek için harf kullanmalısınız. Aksi takdirde çıktı olarak her zaman False değeri döndürür.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.DriveExists(&quot;C&quot;)<br> %&gt;</div> <br> Ekrana True yazdıracaktır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.DriveExists(&quot;Z&quot;)<br> %&gt;</div> <br> Eğer hard diskinizi paramparça etmediyseniz False değeri döndürecektir. :)))))<br> <br> Sürücü harfini tek başına yada önüne : veya : veya :/ konmuş şekilde kullanabilirsiniz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> FSO.DriveExists(&quot;C&quot;)<br> FSO.DriveExists(&quot;C:&quot;)<br> FSO.DriveExists(&quot;C:&quot;)<br> FSO.DriveExists(&quot;C:/&quot;)<br> %&gt;</div> <br>Yukarıdaki kullanımların hepsi geçerlidir.<br> <br> FileExist<br> <br> Bu nesnemiz server da belirlediğiniz isimli bir dosya olup olmadığını kontrol eder.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Kontrol<br> Set Kontrol=Server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br> If Kontrol.FileExists (&quot;c:netpubwwwroot spnedirdeneme.txt&quot;) = true then<br> Response.Write (&quot;deneme.txt dosyası bulundu!&quot;) <br> <br>Else<br> Response.Write (&quot;deneme.txt dosyası bulunamadı!&quot;) <br> End If<br> Set Kontrol=Nothing <br> %&gt;</div> <br> FolderExist<br> <br> Bu nesnemiz server da belirlediğiniz isimli bir klasör olup olmadığını kontrol eder.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Kontrol<br> Set Kontrol=Server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br> If Kontrol.FolderExists (&quot;c:netpubwwwroot spnedirdeneme&quot;) = true then<br> Response.Write (&quot;deneme klasörü bilgisayarda bulundu.&quot;) <br> <br>Else<br> Response.Write (&quot;deneme klasörü bilgisayarda bulunamadı!&quot;)<br> End If<br> <br>Set Kontrol=Nothing <br> %&gt;</div> <br>GetAbsolutePathName<br> <br>Verdiğiniz bir yol için sürücünün root dizininden Windows isimlendirme kuralına göre tam yolu getirir. Verdiğiniz yolun geçerli olup olmaması yada Windows standartlarına uyması önemli değildir. Çünkü bu metot string üzerinde işlem yapar.<br> <br> FSO.GetAbsolutePathName(&quot;yol&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetAbsolutePathName(&quot;C:Inetpubwwwroot&quot;)<br> Response.Write FSO.GetAbsolutePathName(&quot;C:Inetpubwwwroot&quot;)<br> Response.Write FSO.GetAbsolutePathName(&quot;C:Inetpubwwwroot/&quot;)<br> Response.Write FSO.GetAbsolutePathName(&quot;C:/Inetpub/wwwroot/&quot;)<br> %&gt;</div> <br> Hepsinin de çıktısı &quot;C:Inetpubwwwroot&quot; şeklinde olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetAbsolutePathName(&quot;C:Metin/Aksu/deneme.abcdefg&quot;)<br> %&gt;</div> <br> Çıktısı &quot;C:MetinAksudeneme.abcdefg&quot; şeklinde olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetAbsolutePathName(Server.Mappath(&quot;/Deneme&quot;))<br> %&gt;</div> <br>Çıktısı &quot;C:InetpubwwwrootDeneme&quot; olur.<br> GetBaseName<br> <br>Verdiğiniz bir yoldaki dosya yada klasörün taban adını getirir. Verdiğiniz yolun geçerli olması yada Windows standartlarına uyması önemli değildir. Çünkü bu metotta string üzerinde işlem yapar.<br> <br> FSO.GetBaseName(&quot;yol&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetBaseName(&quot;C:MetinAksudenemendex&quot;)<br> Response.Write FSO.GetBaseName(&quot;C:MetinAksudenemendex&quot;)<br> Response.Write FSO.GetBaseName(&quot;C:MetinAksudenemendex.asp&quot;)<br> Response.Write FSO.GetBaseName(&quot;C:MetinAksudenemendex.asp&quot;)<br> Response.Write FSO.GetBaseName(&quot;denemendex&quot;)<br> Response.Write FSO.GetBaseName(&quot;denemendex.asp&quot;)<br> Response.Write FSO.GetBaseName(&quot;index.asp&quot;)<br> <br>Response.Write FSO.GetBaseName(Server.Mappath(&quot;index&quot;))<br> Response.Write FSO.GetBaseName(Server.Mappath(&quot;index.asp&quot;))<br> %&gt;</div> <br>Hepsinin çıktısı &quot;index&quot; olur.<br> <br>GetDrive<br> <br>Verdiğiniz bir sürücü harfi için o harfe sahip sürücü üzerinde işlemler yapılabilen bir sürücü nesnesi döndürür. Sürücü geçerli olmalıdır.<br> <br>Set Surucu = FSO.GetDrive(&quot;Sürücü Harfi&quot;)<br> <br>GetDriveName<br> <br>Verdiğiniz bir yol stringi için sürücü harfini içeren bir string döndürür. Verdiğiniz yolun geçerli olması önemli değildir. Ancak sürücü harfinden sonra (:) olmalıdır.<br> <br> FSO.GetDriveName(&quot;Yol&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetDriveName(&quot;z:&quot;)<br> Response.Write FSO.GetDriveName(&quot;z:&quot;)<br> Response.Write FSO.GetDriveName(&quot;z:/&quot;)<br> Response.Write FSO.GetDriveName(&quot;z:fgjcvmnc&quot;)<br> Response.Write FSO.GetDriveName(&quot;z:sfgjcvmnc&quot;)<br> Response.Write FSO.GetDriveName(&quot;z:/sfghdf&quot;)<br> %&gt;</div> <br> Hepsinin çıktısı &quot;z:&quot; olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetDriveName(Server.Mappath(&quot;/&quot;))<br> %&gt;</div> <br>Çıktısı &quot;C:&quot; olur.<br> <br>GetExtensionName<br> <br>Verdiğiniz string içinde en son bileşenin uzantısını verir. Verdiğiniz stringin geçerli bir yol ifadesi olması yada dosya uzantısının geçerli bir uzantı olması gerekmez. Kısacası verdiğiniz string içindeki son noktadan sonraki kısmı verir.<br> <br> FSO.GetExtensionName(&quot;string&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetExtensionName(&quot;C:Denemendex.asp&quot;)<br> %&gt;</div> <br> Çıktısı &quot;asp&quot;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetExtensionName(&quot;C:Denemendex.metin&quot;)<br> %&gt;</div> <br> Çıktısı &quot;metin&quot;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetExtensionName(&quot;ahmetmehmetüleyman.hilmi&quot;)<br> %&gt;</div> <br> Çıktısı &quot;hilmi&quot;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetExtensionName(&quot;ahmetmehmetüleyman.hilmi.fikri.zikri&quot;)<br> %&gt;</div> <br> Çıktısı &quot;zikri&quot;<br> <br>GetFile<br> <br>Belirttiğiniz bir dosya için üzerinde işlemler yapılabilen bir dosya nesnesi oluşturur. Dosya geçerli olmalıdır.<br> <br>Set Dosya = FSO.GetFile(&quot;Dosya Yolu&quot;)<br> GetFileName<br> <br>Verdiğiniz bir string ifadesi içinde ki en son bileşenin uzantısıyla beraber ismini verir. Eğer uzantı yoksa sadece ismini verir. GetBaseName dosya ismini veriyor, uzantısını vermiyordu. GetFileName uzantısıyla beraber dosya ismini verir. Verdiğiniz stringin geçerli bir yol ifadesi olması gerekmez. Bu yöntemde string üzerinde işlem yapar.<br> <br> FSO.GetFileName(&quot;İfade&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetFileName(&quot;C:Denemendex.asp&quot;)<br> Response.Write FSO.GetFileName(&quot;C:Denemendex.asp&quot;)<br> Response.Write FSO.GetFileName(&quot;sf4574356754ndex.asp&quot;)<br> %&gt;</div> <br> Çıktıları &quot;index.asp&quot; olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetFileName(&quot;C:Denemendex&quot;)<br> Response.Write FSO.GetFileName(&quot;C:Denemendex&quot;)<br> Response.Write FSO.GetFileName(&quot;sf4574356754ndex&quot;)<br> %&gt;</div> <br>Çıktıları &quot;index&quot; olur.<br> GetFileVersion<br> <br>Exe, dll gibi dosya versiyonu bilgisini taşıyan dosyalarda dosyanın sürüm numarasını verir. Verilen dosya yolu ifadesi geçerli olmalıdır. Eğer yol geçerli değilse yada dosya sürüm bilgisi taşımıyorsa boş değer döner.<br> <br> FSO.GetFileVersion(&quot;Dosya Yolu&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetFileVersion(&quot;C:Program FilesAheadNeroAudioPluginMgr.dll&quot;)<br> %&gt;</div> <br> Benim sistemimde çıktısı &quot;2.0.0.2&quot; şeklinde.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetFileVersion(&quot;C:Program FilesAheadNeronero.exe&quot;)<br> %&gt;</div> <br>Çıktı &quot;5.5.9.9&quot; şeklinde.<br> <br>GetFolder<br> <br>Belirttiğiniz bir klasör için üzerinde işlemler yapılabilen bir klasör nesnesi oluşturur. Klasör geçerli olmalıdır.<br> <br>Set Klasor = FSO.GetFolder(&quot;Klasör Yolu&quot;)<br> <br> <br> GetParentFolderName<br> <br>Verdiğiniz bir yol ifadesi için o yolun en son dosyasının veya klasörünün içinde bulunduğu klasör ismini döndürür. Yol ifadesinin geçerli olması gerekmez.<br> <br> FSO.GetParentFolderName(&quot;Yol&quot;)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetParentFolderName(&quot;C:MetinAksundex.asp&quot;)<br> Response.Write FSO.GetParentFolderName(&quot;C:MetinAksu/index.xghdmhgghf&quot;)<br> %&gt;</div> <br> Her ikisinin de çıktısı &quot;C:MetinAksu&quot; olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetParentFolderName(&quot;C:MetinAksu&quot;)<br> Response.Write FSO.GetParentFolderName(&quot;C:MetinAksu&quot;)<br> Response.Write FSO.GetParentFolderName(&quot;C:MetinAksu/&quot;)<br> %&gt;</div> <br> Üçünün de çıktısı &quot;C:Metin&quot; olur.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetParentFolderName(&quot;GiresunMetinAksu&quot;)<br> Response.Write FSO.GetParentFolderName(&quot;GiresunMetinAksu&quot;)<br> %&gt;</div> <br>Çıktıları &quot;GiresunMetin&quot; olur.<br> <br> GetSpecialFolder<br> <br>Vereceğiniz 0,1 veya 2 sayısı için Windows özel dizinlerini döndürür. Bu üç sayı dışında argüman kabul etmez.<br> <br>FSO.GetSpecialFolder(sayı)<br> <br>0 = &quot;C:WINDOWS&quot;<br> 1 = &quot;C:WINDOWSystem32&quot;<br> 2 = &quot;C:WINDOWSTemp&quot;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetSpecialFolder(1)<br> %&gt;</div> <br> Çıktısı &quot;C:WINDOWSystem32&quot; olur.<br> <br> GetTempName<br> <br>Geçici bir dosya için .tmp uzantılı rastgele bir dosya adı üretir. Dosya ismi başında &quot;rad&quot; sözcüğü bulunur. Bu rastgele uzantılı dosya oluşturulmaz. Sadece dosya adı üretir. Siz bu ismi CreateTextFile ile dosya oluştururken kullanabilirsiniz.<br> <br> FSO.GetTempName<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Write FSO.GetTempName<br> %&gt;</div> <br>Çıktısı &quot;A9932&quot; kısmı her seferinde değişmek kaydıyla &quot;radA9932.tmp&quot; gibi olur.<br> <br> Move File<br> <br> Bu nesne ile Server'da bulunan bir dosyayı başka bir dizine taşıyabiliriz<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Tasi<br> Set Tasi=Server.CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Tasi.MoveFile &quot;C:netpubwwwroot spDeneme.txt&quot;,&quot;C:netpubwwwrootnedir&quot;<br> Set Tasi=Nothing<br> %&gt; </div> <br>Bu kodu yazıp çalıştırırsanız, önceden belirlediğimiz dosya kontrol edilir eğer orada bulunursa dosyayı alarak yine önceden belirlediğiniz dizine taşır.<br> <br> MoveFolder<br> <br> Herhangi bir klasörü belirlediğiniz bir klasöre taşımımızı sağlar.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Tasi<br> Set Tasi=CreateObject (&quot;Scripting.FileSystemObject&quot;)<br> Tasi.MoveFolder &quot;c:Inetpubwwwroot sp&quot;, &quot;c:Inetpubwwwrootnedir&quot;, true<br> %&gt; </div> <br> Bu işlem için taşınacak kaynak klasörü belirtirken sonuna slash() koymuyoruz. Koyarsak yol bulunamadı hatası verir. c:Inetpubwwwroot sp olduğu gibi.<br> Taşınacak klasör için bu sınırlama yok. &quot;c:Inetpubwwwrootnedir” yada “c:Inetpubwwwrootnedir&quot;şeklinde yazabilirsiniz.<br> “asp” klasörü içindeki alt klasörleri “nadir” klasörüne taşınır. asp klasörünün kendisi ve içindeki dosyaları ise taşınmaz.<br> <br>OpenTextFile ; TextStream Nesnesi bölümde ayrıntıları bulabilirsiniz.<br> <br>Drives : <br> Sürücü Koleksiyonu<br> Bir bilgisayar üzerindeki tüm sürücüleri içeren bir dizi değişken döndürür<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim DosyaSistemi, Surucu, Suruculer<br> Set DosyaSistemi = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br> Set Suruculer = DosyaSistemi.Drives<br> For Each Surucu In Suruculer<br> %&gt;<br> &lt;b&gt;Sürücü:&lt;/b&gt; &lt;%=Surucu.DriveLetter%&gt;&lt;br&gt;<br> &lt;% If Surucu.IsReady = True Then%&gt;<br> &lt;b&gt;Disk Adı:&lt;/b&gt; &lt;%=Surucu.VolumeName%&gt;&lt;br&gt;<br> &lt;b&gt;Boş alan:&lt;/b&gt; &lt;%=Surucu.FreeSpace%&gt;&lt;br&gt;<br> &lt;% Else %&gt;<br> &lt;i&gt;Sürücü hazır değil!&lt;/i&gt;&lt;br&gt;<br> &lt;% End If<br> Next %&gt;</div> <br>Yukardaki Örnek sunucunun disk-disket-CD-ROM durumunu size listeleyecektir<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-1761171411811513608?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-27579284962390465312008-10-27T15:20:00.002-07:002008-10-27T15:21:16.407-07:00Global.asa Nedir<h4>Global.asa</h4> <br>Sunucuya girildiginde veya sunucu açıldıgında yapılacak işleri sıralayan bir çeşit ASP dosyasıdır. Uzantısı ASP olmadıgı gibi kodlari içerisinde de yazılmayan bir VBScript’tir diyebiliriz. Global.asa’yi yazarken dikkatli olmak gerekiyor. Keza yazilan hatalı bir kullanım, tüm sitenizi baştan açıp kapatmanıza neden olacaktır. <br> <br>Global.asa’ yı sitenizde denemeden önce sunucunuzun global.asa ile barışık oldugundan emin olun. Global.asa uygulamanın kok dizininde saklanması gerekir. <br> <br> Global.asa’nin genel kullanımı <br> <br>1. Web sitesi açıldıgı zaman,<br> 2. Kullanıcı web sitesine girdigi zaman,<br> 3. Kullanıcı web sitesinden çıktıgı zaman yapılacak işleri düzenlemek için kullanılmaktadır. <br> <br> Örnek bir GLOBAL.ASA <br> <br> &lt;SCRIPT LANGUAGE=VBScript RUNAT=Server&gt; <br> Sub Application_OnEnd() <br> End Sub <br> Session.Timeout=1 <br> Sub Application_OnStart() <br> Application(&quot;SuankiZiyaretciSayisi&quot;) = 0 <br> Application(&quot;toplamziyaret&quot;) = 0 <br> End Sub <br> Sub Session_OnEnd() <br> Application(&quot;SuankiZiyaretciSayisi&quot;) = Application(&quot;SimdikiZiyaretciSayisi&quot;) -1 <br> End Sub <br> Sub Session_OnStart() <br> Application(&quot;SuankiZiyaretciSayisi&quot;) = Application(&quot;SimdikiZiyarteciSayisi&quot;) +1 <br> Application(&quot;toplamziyaret&quot;) = Application(&quot;toplamziyaret&quot;) +1 <br> End Sub <br> &lt;/SCRIPT&gt; <br> <br> Bu dosyayı Global.asa olarak kaydedin. Ve simdi basit bir sayac yapalim. Asagidaki kodlari Aktif_Kullanicilar.asp olarak kaydedin ve Browser'inizda görüntüleyin... <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Response.Write &quot;&lt;h4&gt; Su Anda Sitemizde &quot; &amp;Application (&quot;SuankiZiyaretciSayisi&quot; ) &amp; &quot; Kisi Surf Yapmaktadir... &lt;/h4&gt;&quot; <br> Response.Write &quot;&lt;h4&gt;Simdiye Kadar Sitemizi &quot; &amp;Application(&quot;toplamziyaret&quot; )&amp;&quot; Kisi Ziyaret Etmistir...&lt;/h4&gt;&quot; <br> %&gt; </div> <br>Bu kodu yazip calistirdiginizda kendinize ait bi sayaciniz olur..<br> <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-2757928496239046531?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-85933956734742901922008-10-27T15:20:00.001-07:002008-10-27T15:20:35.339-07:00ISS Kurma Kurulumu<h4> ASP uzantılı dosyalarınızı </h4> <br>bilgisayarınızda çalıştırabilmek için, Nt tabanlı işletim sistemi kullanıyorsanız IIS (Internet Information Server) servisinin kurulu olması lazım. <br> <br> 1. Bilgisarınıza IIS (Internet Information Server) kurabilmek için bilgisayarınızda Windows NT 4.0 veya sonraki versiyonların kurulu olamsı gereklidir. <br> <br> 2. Eger Bilgisarınızda Win 95,98 veya Win Me kuruluysa PWS' yi(Personel Web Server) bilgisayarınıza kurmalısınız <br> <br> IIS Windows’ta default olarak kurulu gelmez, manuel olarak kurulması ve yapılandırılması gereklidir. Bunun için Control Panel’den (Denetim Masası) Add or Remove Programs (Program Ekle veya Kaldır) bölümünden Add or Remove Windows Companents (Windows Bileşenleri Ekle veya Kaldır) bölümü seçilir. Karşımıza çıkan listeden IIS seçilir.<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-8593395673474290192?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-9878117068846653592008-10-27T15:19:00.003-07:002008-10-27T15:19:53.460-07:00Contentrotator Uygulamaları<h4>CONTENTROTATOR</h4> <br> Sayfaya her girdinizde sayfanın içerigini değiştirmek istermisiniz. Bunu ASP’ nin ContentRotator özelliği ile yapabiliriz.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Set Tip = Server.CreateObject(&quot;MSWC.ContentRotator&quot; ) <br> Response.Write Tip.ChooseContent(&quot;icerik.txt&quot; ) <br> %&gt;</div> <br>İçegini her acılışta degişmesini istedigimiz sayfaya yukardaki kodları yerleştirin. İçerigimizi de icerik.txt adında dosyaya aşağıda klileri yazıp root’ a kaydediyoruz.. Yapmamız gerekenlerin hepsi bu kadar.<br> <br> %% #2// Fikra1<br> LORD <br> Bir ingiliz lordu karisini yatakta bir genc adamla basmis...onlari oyle<br> gorunce kadina : -&quot;sayin leydim bu yaptiginiz genel ahlaka sigmaz ben size guvenmistim,<br> guvenimin sonsuza kadar surecegini tahmin ediyordum... bana bunu<br> yapamamliydiniz....&quot;, diye yarim saat nutuk ceker. Ama sonunda dayanamaz<br> ve yataktaki gence doner: <br> - &quot;Ve siz sevgili genc, en azindan ben konusurken durmak nezaketini<br> gosterebilirdiniz.<br> <br>%% #3// Fikra2<br> GENÇ KIZ<br> <br>Genc kız genc asıgına telefon acmıs : * -Jean, demis, seni çok<br> arzuluyorum, geceleri uyku uyuyamyyorum.Ne olur bu hafta sonu bize yemege<br> gel.Seni annem babamla tanıstırayım.Sonra benim odamda ders calısıyor<br> gibi yapar doya doya sevisiriz... <br> * Jean ömründe hicbir kızla sevismemis, toy bir delikanli. Bir eczaneye<br> gitmis.Babacan eczaciya : <br> -Bu hafta sonu önce bir aile yemegi , pesinden atesli bir ask<br> yaşayacagım, demis, o yuzden iyisinden iki kutu prezervatif istiyorum... <br> Babacan eczacı kutuları vermiş, oglanın sırtını sıvazlayıp yolcu etmiş. *<br> Jean hafta sonunda bir büyük buket çiçekle Françoise'nın kapısını çalmış <br> * Genç kız kapıyı açmış.Jean'y dogrudan yemege almış. Delikanlı çok mahçup<br> biçimde masaya oturmuş.Kızın ana babasının yüzüne şöyle bir baktıktan<br> sonra başını önüne egmiş.Başlamış dua etmeye.Ancak dua bir türlü<br> bitmiyor.Françoise sonunda dayanamamış, fısıltıyla : <br> *-Ben senin bu kadar dindar oldugunu hiç bilmiyordum Jean, demiş... <br> Jean adeta inlemiş : * -Ben de babanın eczacı oldugunu bilmiyordum.. <br> <br>%% #5// Fikra3<br> LÜTFEN<br> Diskoda bir güzel eğlendikten sonra delikanlı sevgilisini evine<br> götürmüş. Kapıda tam ayrılacakları vakit oğlan bir elini duvara dayayarak<br> kızcağızı kapı ile kendi arasına sıkıştırmış... <br> - Bir kere öpücem!... <br> - Olmaz, komşular görür... <br> Derken tartışma uzamış. O sırada kapı açılmış, küçük kızkardeş gözlerini<br> oğuşturarak kapıda belirmiş. Ablasına dönüp: <br> - Babam diyor ki, demiş, öptürecekse öptürsün yoksa ben aşağı inip o<br> herifi öyle bir öperim ki bir daha unutamaz... <br> Hem söyle şuna abla, elini diafonun düğmesinden çeksin...<br> <br> Burada %% #2// Fikra1 karakterleri hemen acıklayalım.<br> %% işaretleri her bir bölümü birbirinden ayırmak için kullanılıyor.<br> #2// işareti ise sayfanın toplamda kaç kere gösterileceğini belirliyor. Yukardaki örnekte yüklenme toplamı 10’ dur burada #2// anlamı; sayfanın her 10 gösterimde 2 kez ilgili içerik gösterilecektir.<br> <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-987811706884665359?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-30681347240799343192008-10-27T15:19:00.001-07:002008-10-27T15:19:27.446-07:00Mantıksal İfadeler<h4>Mantıksal İfadeler</h4> <h4>DO...LOOP DONGÜ YAPIS</h4> Bir kosul dogruyken veya dogru olana dek belli bir kod blogunun tekrarlanarak yürütülmesini saglar.<br> <br>Örnek :<br> <br>Do While Not Kayitlar.EOF<br> Response.write &quot;&lt;p&gt;&quot; &amp; Kayitlar (&quot;email&quot;) &amp; &quot;&lt;/p&gt;&quot;<br> Kayitlar.Movenext<br> Loop<br> <br>Veritabanindan seçtigimiz kayitlarla olusturdugumuz kayitkümesinin &quot;email&quot; adli alanindaki tüm kayitlara ait degerleri bu dongü yapisiyla sayfaya yazdirabiliriz. <br> <br>Burada koydugumuz koşul: &quot;KayitKümesi sonunda olunmaması &quot; (Not Kayitlar.EOF). Bu koşul doğru olduğu sürece dongü işleyecektir.<br> <br>Dongü içindeki ifadede Kayitlar.Movenext komutunun işlevi ise, bu kayitkümesinde bir sonraki kayda geçmemizi saglayan metoddur. Eger bunu yazmazsanız dongü sayfaya hep aynı kaydın &quot;email&quot; alanındaki degeri yazılacak, yani sonsuz dongüye girilecektir. Çünkü kayitkümesi hiç bir zaman dosya sonuna gelmeyecektir. Dongülerde bu tür durumlara dikkat etmeliyiz.<br> <br> &quot;Until&quot; ile ornek yapalim.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Do Until a&gt;=10<br> Response.Write a &amp; &quot;&lt;br&gt;&quot;<br> a = a +1<br> Loop<br> %&gt;</div> <br> A değeri 10’ dan büyük veya eşit olana dek döngü devam ettirilecektir. <h4>WHILE...WEND DONGÜ YAPISI</h4> Bu dongü yapisi da DO..LOOP un ozel ve basit seklidir.<br> <br> Örnek :<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> While sayac &lt;= 5<br> sayac = sayac + 1<br> Response.Write a &amp; &quot;&lt;br&gt;&quot;<br> wend<br> %&gt;</div> <br>Burada döngü wend kelimesiyle sonlandırılır. Programın sayaçı 5'den küçük veya 5'e eşit iken işleyecektir. Sayac 5’ den Büyük oldugunda döngüden çıkılacaktır. <h4> FOR..NEXT DONGÜ YAPISI</h4> Bir ifade blogunun, belirlenen sayi kadar yürütülmesini saglar.<br> <br>Durum kontrolü yoktur. Bu dongüyle yapilan her sey, DO..LOOP ile de yapilabilir.<br> <br> Örnek::<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Gunler<br> Gunler = Array(&quot;Pazartesi&quot;, &quot;Sali&quot;, &quot;Çarsamba&quot;, &quot;Persembe&quot;, &quot;Cuma&quot;, &quot;Cumartesi&quot;, &quot;Pazar&quot;)<br> For sayac = 0 to 6<br> Response.Write Gunler(sayac)<br> Response.Write &quot;&lt;BR&gt;&quot;<br> Next<br> %&gt;</div> <br>Bir dizi tanimlayip, FOR..NEXT dongüsüyle, dizinin elemanlarini yazdiriyoruz. Yazdirma isleminde sayaç olarak belirledginiz &quot;sayac&quot; degişkenini Günler dizisinin elemanlarına ulaşmak için indis olarak kullaniyoruz. <h4>FOR EACH...NEXT DONGÜ YAPISI</h4> Bir ifade blogunu, belli bir dizi veya kolleksiyondaki herbir eleman için tekrar eder.<br> <br> Örnek:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim Gunler<br> Gunler = Array(&quot;Pazartesi&quot;, &quot;Sali&quot;, &quot;Çarsamba&quot;, &quot;Persembe&quot;, &quot;Cuma&quot;, &quot;Cumartesi&quot;, &quot;Pazar&quot;)<br> For Each gun In Gunler<br> Response.Write gun<br> Response.Write &quot;&lt;BR&gt;&quot;<br> Next<br> %&gt;</div> <br>Bu döngü, FOR..NEXT örnegindeki kullanımla aynı sonucu verecektir. Sayfaya yine dizideki elemanlar sırayla yazdırılacaktır.<br> <br> Dizilerden sonra kolleksiyonlarla kullanımına örnek yapalım.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> For Each eleman in Request.form<br> Response.Write eleman &amp; &quot; : &quot;<br> Response.Write Request.Form(eleman) &amp; &quot;&lt;br&gt;&quot;<br> Next<br> %&gt;</div> <br> Bir HTML formunun yönlendigi sayfada kullanılabilecek bir kullanım. ASP nin Request.Form kolleksiyonundaki her elemanın adını ve değerini sayfaya yazıyor. <h4>IF...THEN...ELSE KONTROLÜ</h4> Bir ifade grubunun, bir durumun mantiksal sonucuna gore yürütülüp yürütülmemesini saglar.<br> <br> Örnek:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> If Request.Form(&quot;Parola&quot;) = &quot;Ben Parolayim&quot; Then<br> Response.Write &quot;Evet.. Parolayi Bildiniz.. &quot;<br> Else<br> Response.Write &quot;Bilinemedi. Heyhât!&quot;<br> End If<br> %&gt;</div> <br>Örnekde formdan &quot;parola&quot; kimlikli elemanın degerinin &quot;Ben Parolayim&quot; string ifadesine eşit olup<br> olmadığı kontrol ediliyor. Eger eşitse parolanın bilindiğini, eşit degilse bilinemedigini anlatan mesajlar yazdırılıyor. <h4> SELECT CASE KONTROLÜ</h4> Bir ifadenin kontrol edilecek durumu ikiden fazla olduğu vakit bu kontrolün kullanılmasi kolaylık sağlar.<br> <br> Yaptigi is IF..THEN..ELSE ile aynidir.<br> <br> Örnek:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> select case hour(now)<br> case 8,9,10,11,12<br> Response.Write &quot;Hos Geldiniz, sitemiz emrinizdedir.&quot;<br> case 13<br> Response.Write &quot;Kapaliyiz. Ogle yemegine çiktik. 2 den sonra gelin&quot;<br> case 14,15,16,17<br> Response.Write &quot;Hosgeldiniz, downloadlar sabah 9-10 arasi yapilabilir&quot;<br> case else<br> Response.Write &quot;Sitemiz kapalidir. Gece mesaisi yoktur. 8 de gelin.&quot;<br> end select<br> %&gt;</div> <br>Ornegimizde kendine mesai saatleri dışında çalışmama kararı almış bir web sitesinde kullanilabilir.<br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-3068134724079934319?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-18864617044945868932008-10-27T15:18:00.003-07:002008-10-27T15:18:53.443-07:00Server Execute<h4>Server.Execute :</h4> ASP dosyası içerisinden başka bir ASP dosyası çağırmayı sağlar.<br> <br> ÖRNEK<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;HTML&gt;<br> &lt;BODY&gt;<br> Benim adım &lt;%Server.Execute(&quot;Cagrilan.asp&quot;)%&gt; mi?<br> &lt;/BODY&gt;<br> &lt;/HTML&gt;</p> <p>&lt;'--Cagrilan.asp&gt;<br> &lt;%<br> response.write &quot;İbrahim&quot;<br> %&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-1886461704494586893?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-39183314325398165762008-10-27T15:18:00.001-07:002008-10-27T15:18:26.881-07:00TextStream Nesnesi<h4> TextStream Nesnesi</h4> <h4> Metin Akımı</h4> Web Server ve dolayısıyla ASP açısından sabit diske bir metin yazarken, veya sabit diskten bir metin okurken, bir metin akışı nesnesi oluşur. Bu nesnenin özellikleri ve metodlarını kullanarak, ziyaretçin sitemize bırakacağı form bilgilerini Web Server’ın sabit diskine yazdırabilir veya mevcut metinleri okuyabilir ve bunların içeriğini ziyaretçimize sunabiliriz.<br> <br> Metin dosyası okumak ve yazmak disk sistemini ilgilendiren bir eylem olduğu için yine Scripting nesnelerinden FileSystemObject nesnesinden yararlanacağız. <h4> Metin Dosyası Oluşturma </h4><h4>(CreateTextFile)</h4> ASP sayfaları sayesinde sunucu üzerinde bir text dosyası oluşturulur yada bu text dosyasına ek yapabiliriz.<br> <br> Bu sayfa açıldığı anda sunucu üzerinde bir text dosyası oluşturulacak ve içerisine yazı yazılacaktır. <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim fso, MyFile<br> <br> Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br> <br> Set MyFile = fso.CreateTextFile(&quot;c:testfile.txt&quot;, True)<br> <br> MyFile.WriteLine(&quot;Test Yazımız.&quot;)<br> <br> MyFile.Close<br> <br> %&gt;</div> <br> CreateTextFile (metin dosyası oluştur) bu metoda argüman olarak yeni metin dosyasının yolunu ve adını veriyorduk<br> <br>WriteLine (satır yaz: bir String’i sonuna yeni satır karakteri koyarak dosyaya yazar) <br> <br>Close (kapat: açılan metin dosyasını kapatır).<br> <br>TextStream’in burada kullandığımız ikisinin dışında iki metodu daha vardır:<br> <br>Write (yaz): Bir String’i dosyaya yazdırır; satır sonuna yeni satır karakteri (Return kodu) koymaz.<br> <br>WriteBlankLines (boş satır yaz): Bir metin dosyasına argüman olarak vereceğiniz sayıda boş satır yazdırır. <h4>Varolan Metin Dosyasını Açma ve Ek Yapma </h4><h4>(OpenTextFile)</h4> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim DosyaSistemi, MetinDosyasi, Satir<br> Set DosyaSistemi = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br> Set MetinDosyasi = DosyaSistemi.OpenTextFile(&quot;c:yazi_deneme.txt&quot;,1, 0)<br> Do<br> Satir = MetinDosyasi.ReadLine<br> %&gt;<br> &lt;%=Satir%&gt;<br> &lt;%<br> Loop Until MetinDosyasi.AtEndOfStream<br> MetinDosyasi.Close<br> %&gt;</div> <br>Set MetinDosyasi = DosyaSistemi.OpenTextFile(&quot;c:yazi_deneme.txt&quot;,1, 0)<br> <br>Burada dosya yolunu ve adını veren birinci argümana ek olarak iki yeni argüman görüyorsunuz: “8,0” şeklinde<br> <br>Bunlardan birinicisi girdi/çıktı durumu (I/O Mode), ikincisi ise biçim (Format) ile ilgilidir. I/O Mode parametreleri şunlardır.<br> <br>1: okumak için aç<br> 8: eklemek için aç<br> <br>Açılacak dosyanın biçimini belirttiğimiz son argüman ise şu değerlerden birini alabilir:<br> <br>0: ASCII dosyası olarak aç<br> -1: Unicode dosyası olarak aç (Örneğin içinde Türkçe karakterler varsa)<br> -2: Sistemin varsayılan dosya türü olarak aç<br> <br> ReadLine. Bu, açılan metin dosyasından bir satır okutmamızı sağlar. <br> İkinci ve son satırları okutmamızı ise Do..Loop kontrolü sağlar. Bu Döngü AtEndOfStream oluncaya kadar (dosyanın sonuna gelene kadar) devam eder.<br> <br>Kullanbilecegimiz Diger komutlar;<br> <br>Read (oku): Bir sayı örgümanı ile çalışır ve verdiğiniz sayı kadar karakter okur. <br> ReadLine (satır oku): Bir satır okur ve String olarak verir. <br> ReadAll (tümünü oku): Bütün satırları okur ve tek String olarak verir. <br> Skip (atla): Bir sayı argümanı ile çalışır ve verdiğiniz sayı kadar karakteri atlar. <br> SkipLine (satır atla): Bir sonraki satıra atlar. <br> Bu metodlarla sağladığımız okuma işinin kontrolü amacıyla şu özellikleri de kullanabiliriz: <br> AtEndOfStream (akımın sonunda): Okutulan dosyanın sonuna gelinmesi halinde True (doğru) olur. <br> AtEndOfLine (satırın sonunda): Okutulan satırın sonuna gelinmesi halinde True (doğru) olur. <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-3918331432539816576?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-22406422343600795262008-10-27T15:17:00.001-07:002008-10-27T15:17:49.198-07:00Request.Querystring<h4> Request.Querystring</h4> Bu deyim bir sayfadan başka bir sayfaya veya aynı sayfaya değişken yada değişkenlerin taşınmasını sağlar.<br> <br>&lt;a href&gt; veya response.Redirect ile yönlendirdigimiz sayfalara istediğimiz degişkenleri taşır.<br> <br> &lt;A href= kullanımı :<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;A href=&quot;telno.asp?telefon_no=4121254&quot;&gt; Gönder &lt;/a&gt;</div> <br>Bu örnekte link verdigimi telno.asp adresini yazdıktan sonra “?” ile sayfaya taşınacak “telefon_no” kimligine bir deger vererek telno.asp adresine yolluyoruz.<br> <br>Birden fazla değer göndermek istiyorsak aralarına “&amp;” işaretini koyarız.<br> <br> Örnek: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;A href=&quot;telno.asp?telefon_no=4121254&amp;ulke_no=90&quot;&gt; Gönder &lt;/a&gt;</div> <br> Telno.asp sayfasında bu gelen verilerileri alabilmesi için aşagıdaki kodlar tanımlanmalıdır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Dim telefon_nosu, ulke_nosu<br> telefon_nosu = Request.QueryString(&quot;telefon_no&quot;)<br> ulke_nosu = Request.QueryString(&quot;ulke_no&quot;)<br> %&gt;<br> <br>&lt;%<br> Response.Write (ulke_nosu)<br> Response.Write (telefon_nosu)<br> %&gt;</div> <br> Aşagıdaki şekilde de sayfaya bilgiler yazılabilir<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.write(&quot;Ülke Kodu : &lt;b&gt;&quot; &amp; Request.querystring(&quot;ulke_no&quot;) &amp; &quot;&lt;/b&gt;&quot;)<br> Response.write(&quot;Telefon Nosu : &lt;b&gt;&quot; &amp; Request.querystring(&quot;telefon_no&quot;) &amp; &quot;&lt;/b&gt;&quot;)<br> %&gt;</div> <br> Request.querystring de Form Kullanımı<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;html&gt;<br> &lt;head&gt;<br> &lt;title&gt;Request Querystring Uygulaması&lt;/title&gt;<br> &lt;/head&gt;<br> &lt;form method=&quot;get&quot; action=&quot;deneme.asp&quot;&gt;<br> Adıniz : &lt;input type=&quot;text&quot; name=&quot;ad&quot; size=&quot;15&quot;&gt;<br> &amp;nbsp;<br> &lt;input type=&quot;submit&quot; value=&quot;Gönder&quot;&gt;<br> &lt;/form&gt;<br> &lt;/html&gt;</div> <br>Deneme.asp sayfasına form elemanı textbox value degeri aktarılır. <br> <br> Şimdi sıra geldi deneme.asp sayfasının kodlarını yazmaya. Burda en önemli nokta textbox form elemanının value degerini almak için name mi kullanılmaktadır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;html&gt;<br> &lt;head&gt;<br> &lt;title&gt;Request Querystring Uygulaması&lt;/title&gt;<br> &lt;/head&gt;<br> &lt;%<br> Response.write(&quot;Adınız : &lt;b&gt;&quot; &amp; Request.querystring(&quot;ad&quot;) &amp; &quot;&lt;/b&gt;&quot;)<br> %&gt;<br> &lt;/html&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-2240642234360079526?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-29216531256178207712008-10-27T15:16:00.002-07:002008-10-27T15:17:08.455-07:00Response Nesnesi Örnekleri<h4> Response</h4> <h4>Response.write</h4> <br>&lt;% %&gt; tagları arasında yazılacak Response.write ifadesiyle sayfaya asp kodları içerisinde yazdıgınız bir yazıyı yada bir değişkeni yazdırabiliriz.<br> <br> Örnek : <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% degisken=&quot;ASP Dersi&quot;%&gt;<br> <br>&lt;% <br> Response.Write &quot;Merhaba&quot;<br> Response.Write &quot;&lt;BR&gt;&quot;<br> Response.Write &quot;Active Server Page&lt;br&gt;&quot;<br> Response.Write &quot;&lt;hr&gt;&quot;<br> response.write (degisken)<br> %&gt;</div> <br>Response.write ASP'de çok kullanılan bir komuttur &lt;% Response.write , yerine &lt;%= yazarakta kullanabilirsiniz.<br> <br> Örnek : <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% degisken=&quot;ASP Dersi&quot;%&gt;<br> <br>&lt;%= &quot;Merhaba&quot;%&gt;<br> &lt;%=&quot;&lt;BR&gt;&quot;%&gt;<br> &lt;%=&quot;Active Server Page&lt;br&gt;&quot;%&gt;<br> &lt;%=&quot;&lt;hr&gt;&quot;%&gt;<br> &lt;%= (degisken) %&gt;</div> <h4>Response.Buffer</h4> Buffer (Tampon): Default değeri &quot;true&quot; <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Response.Buffer = True %&gt;</div> <br> Asp kodlarının tamamının çalışması beklenir, tüm kodlar işlendikten sonra HTML sayfa toptan gösterilir.<br> <br> bu degeri false yapmak için;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Response.Buffer = False %&gt;</div> <h4> Response.End</h4> End (Son): Sunucu bu satırı gördügünde işlem yapmayı bırakır. Bu satırdan sonraki asp veya html kodlar icra edilmez. Ve o zamana kadar tampon hafıza ki değerleri tarayıcıya gönderir.<br> <br> Örnek:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Response.Write &quot;Marhaba ASP&quot;<br> Response.End<br> Response.Write &quot;Hello ASP&quot;<br> %&gt;</div> <br>Çıktı : Merhaba ASP , olur. <h4> Response.Expires</h4> Expires (zaman aşamı süresi): Sayfanın Tarayıcı tarafından cache dizininde ne kadar tutulacağını dakida olarak set etmek için kullanılır.<br> <br> &lt;% Response.Expires=dakika %&gt;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Expires = 60<br> %&gt;</div> <br>Bu değere &quot;0&quot; yapılırsa ( Response.Expires=0 ) sayfaya her gelişte sayfa yeniden yüklenir. <h4> ExpiresAbsolute:</h4> Bu sürenin dakika olarak değil tarih veya saat olacak şekilde sayfanın geçerlilik süresini belirlemek için kullanılır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Response.ExpiresAbsolute=#tarih# %&gt;</div> <br> şeklinde. <h4>Response.Clear</h4> Clear (Boşalt): Sunucu çalışma sırasında bu deyime rastlarsa o zamana kadar tampon bellekteki saklanan bütün bilgileri siler, yok eder. <br> <br>Not: Response.Buffer= false olarak ayarlı ise Run-time (çalışma zamanı) hataya sebep olur.<br> <br> Kullanımı :<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> Response.Clear <br> %&gt;</div> <h4>Response.Flush </h4> Flush (hemen gönder), Sunucu çalışma sırasında bu ifadeye rastlarsa , bu ifadeye kadar icra edilmiş kodun sonucunu (Tompon Bellekte Tuttugu Değerleri) HTML’i tarayıcıya gönderir:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> response.flush<br> %&gt;</div> <h4>Response.Redirect</h4> Bir sayfadayken başka bir sayfaya yönlendirme yapmak için kullanılır.Sunucu çalışma sırasında bu ifadeye rastlarsa çalışmasını durdurur ve belirtilen sayfayı açar.<br> <br> Kullanımı:<br> <br>response.Redirect &quot;yönlendirecek Sayfa Sdresi &quot;<br> <br>Not: Eğer http header client a gönderilmiş ise Response.redirection hataya sebep olmakta .Bu hatayı engellemek için response.Buffer özelliğini true yapmak ve herhangi bir noktada response.clear kullanarak response.Redirection in hata vermesini önlenir.<br> <br> Örnek: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Response.Buffer = true %&gt;<br> <br>&lt;HTML&gt;<br> &lt;BODY&gt;<br> &lt;%<br> Response.Clear<br> Response.Redirect &quot;yonlendirme.asp&quot; <br> %&gt;<br> &lt;/BODY&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-2921653125617820771?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-33333467645977399562008-10-27T15:16:00.001-07:002008-10-27T15:16:34.238-07:00Cookies Çerezler Kurabiyeler<h4>Çerezler, Kurabiyeler (cookies)</h4> <br>Cookies ASP de bize çok yardım eden unsurlardır.Ziyaretcinin bilgisayarına not bırakıp daha sonra okumada kullanılır. <h4>Cookies oluşturmak</h4> ASP ile istemci bilgisayarlara çerez yollamak çok basit bir iştir.Bu iş için ASP ‘de Response.cookies metıdu kullanılır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.cookies(&quot;kabuklarim&quot;)(&quot;adi&quot;) = &quot;Mucit&quot;<br> Response.cookies(&quot;kabuklarim&quot;)(&quot;sevdigi_icecek&quot;) = &quot;Kızılcahamam Maden Suyu ve Sodası&quot;<br> Response.cookies(&quot;kabuklarim&quot;)(&quot;medeni_durumu&quot;) = &quot;Bekar!&quot;<br> %&gt;</div> <br> cookies yolladık tarayıcıya. Peki bu cookies görmek istediğimiz zaman ASP nin diğer nesnesi REQUEST kullanılır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Adim = Request.cookies(&quot;kabuklarim&quot;)(&quot;adi&quot;)<br> ne_icerim = Request.cookies(&quot;kabuklarim&quot;)(&quot;sevdigi_icecek&quot;) <br> medeni_halim = Request.cookies(&quot;kabuklarim&quot;)(&quot;medeni_durumu&quot;)<br> Response.Write Adim &amp; &quot; / &quot; &amp; ne_icerim &amp; &quot; / &quot; &amp; medeni_halim<br> %&gt;</div> <br>' sayfadaki çıktı: Mucit / Kızılcahamam Maden Suyu ve Sodası / Bekar! <br> Şeklinde olur.<br> <br> Aşagıdaki uygulamayı cerez_uygulama.asp olarak kaydedin. Örnekte Kullanıcı Forma girdigi veri Cookies olarak saklanır ve bu veri cookies’den tekrar alınarak sayfaya yazılır.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Response.Cookies(&quot;Cerezim&quot;)(&quot;adiniz&quot;) = Request.Form(&quot;isim&quot;)<br> %&gt;<br> &lt;%<br> ad = Request.cookies(&quot;Cerezim&quot;)(&quot;adiniz&quot;)<br> if ad &lt;&gt; &quot;&quot; then <br> %&gt;<br> &lt;%= ad %&gt;<br> &lt;% else %&gt;<br> &lt;form method=&quot;POST&quot; name=&quot;form&quot; action=&quot;cerez_uygulama.asp&quot;&gt;<br> <br><br> &lt;table&gt;<br> &lt;tr&gt;<br> &lt;td width=&quot;50%&quot;&gt;Adınız&lt;/td&gt;<br> &lt;td width=&quot;50%&quot;&gt;<br> &lt;input type=&quot;text&quot; name=&quot;isim&quot; size=&quot;20&quot;&gt;&lt;/td&gt;<br> &lt;/tr&gt;<br> &lt;tr&gt;<br> &lt;td&gt;<br> <br>&lt;input type=&quot;submit&quot; value=&quot;Kaydet&quot; name=&quot;B1&quot;&gt;&lt;/td&gt;<br> &lt;/tr&gt;<br> &lt;/table&gt;<br> &lt;/form&gt;<br> &lt;% end if %&gt;</div> <h4>Cookies Silme</h4> Expires (zaman aşamı süresi): Bir cookie’nin artık geçersiz olduğu tarihi gösterir.:<br> <br>&lt;% Response.Cookies(“benim_cerez”).Expires=#31/12/2010# %&gt;<br> <br>Bu Cookie, 7 Ağustos 2010 tarihinden sonra kullanılmaz olacak demektir.<br> <br>Not : Eger Expires geçerlilik tarihini geçmiş bir gün verilirse cookies o an silinir.<br> <br> ÖRNEK<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> response.cookies(“benim_cerez”).Expires=#31/12/2000#<br> %&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-3333346764597739956?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-84903899717957744192008-10-27T15:15:00.001-07:002008-10-27T15:15:54.813-07:00Rastgele Sayı Random<h4>Randomize</h4> <h4>Tesadüfî Sayı üretmek</h4> Rastlantısal sayı, bir dizide tekrar etmesi belirli bir düzene tabi olmayan sayı demektir.<br> <br> VBScript, bu amaçla Randomize ve Rnd bulunur. Randomize, tesadüfî sayı üretme sürecini başlatır; Rnd da bu sayıyı size verir. Kodunuzda bir yerde Rnd kullanacaksınız, ondan önce bir yerlerde mutlaka Randomize komutunun yer alması gerekir. Bunun bir uygulaması şu olabilir: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% OPTION EXPLICIT %&gt;<br> &lt;HTML&gt;<br> &lt;%<br> Dim TesadufiSayi<br> Randomize<br> TesadufiSayi = Rnd<br> %&gt;<br> &lt;%=TesadufiSayi%&gt;<br> &lt;/HTML&gt; </div> <br> Bu dosyayı tesadufi.asp adıyla kaydedip çalıştırın; Browser'ın Yenile düğmesini her tıkladığınızda ekranda yeni bir sayı göreceksiniz <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-8490389971795774419?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-60481546853519496422008-10-27T15:14:00.002-07:002008-10-27T15:15:17.139-07:00AdRotator Nedir<h4>AdRotator</h4> <br> Adrotator sayfalarımizda görüntülenmek için alınan bannerlerin hangi sırayla, ne kadar sıklıkla gosterılecegini bildiren, bu bannera tıklandıgında, reklamı veren url' ye yönlendırmeyi yapan komponenttir.<br> <br>Bir uygulama ile nasıl yapıldığını açıklayalım.<br> <br>Öncelikle aşagıda yazılanları ReklamPlan.txt adında root klasörüne kaydedin.<br> <br>Redirect Reklam.asp <br> width 462<br> height 53<br> border 0<br> *<br> Banner1.gif <br> http://www.mynet.Com<br> Mynet alt bilgileri<br> 5<br> <br>Banner2.gif<br> http://www.google.Com<br> Google alt bilgileri<br> 6<br> <br>Banner3.jpg<br> http://www.yahoo.Com<br> Yahoo alt bilgileri<br> 1<br> Şimdi bu textimizde kullandığımız terimleri tanımlayalım. <br> <br>WIDTH: Bannerlarınızın Genişliğini gireceksiniz.<br> HEIGHT: Bannerlarınızın Yüksekliğini gireceksiniz.<br> BORDER: banneri cerceve içine almak istemiyorsak 0 degerini veririz. <br> <br>İlk Satırda bannerin img adını ve yolunu yazıyorsunuz.<br> İkinci Satırda,url adresini<br> Üçüncü satırda ise imajın üzerine gelince çıkacak ALT yazısını.<br> Dördüncü satırdaki rakamlarımızın toplamı 10'u verir. Bu rakamlar seçili banner'ımızın 10 sayfa gösteriminde kaç kere gösterileceğini belirler...<br> <br><br> Redirect Reklam.asp ibaresi, reklama tıklandığında yönlenilecek URL'yi belirtir. ADROTATOR bileşeni, resimlere atadığımız adresi ve resim dosyasının adresini bir string oluşturarak REDIRECT satırındaki adrese gönderir. Bizim bu satırdaki adresimiz reklam.asp<br> <br>Bu durumda; Örneğin, http://www.yahoo.Com reklamına tıklandığında şu şekilde bir adres oluşacaktır: <br> http://www.site-adi.com/reklam.asp?url=http://www.yahoo.comI=images/banner3.gif <br> <br>Bizede reklam.asp dosyasını oluşturup, sayfayı url değişkenindeki adrese yönlendirmek kalıyor. Bu işlemi Response.Redirect(url ) komutunu kullanarak yapacağız. <br> <br> Şimdi reklam.asp'yi oluşturalım;<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% <br> url=Request.QueryString(&quot;url&quot; ) <br> If url&lt;&gt;&quot;&quot; then Response.Redirect(url ) <br> %&gt; </div> <br>Şimdi de Reklamları gösterim yapacagımız sayfanın kodlarını yazmaya.<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> Set ReklamNesnesi=Server.CreateObject(&quot;MSWC.Adrotator&quot; ) <br> ReklamNesnesi.TargetFrame=&quot;target='_blank'&quot; ' yeni pencere de actık <br> banner=Reklamnesnesi.GetAdvertisement(&quot;banner.txt&quot; ) Response.Write banner <br> %&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-6048154685351949642?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-68309357519927540192008-10-27T15:14:00.001-07:002008-10-27T15:14:29.056-07:00Server Nesnesi Uygulama<h4> Server ( Sunucu )</h4> <br>ASP, Web Server programını bir nesne olarak ele alır ve onun bize sağladığı araçları ve imkanları kullanmamızı sağlar. Web Server, ASP için bir nesnedir, ASP’nin bir çok işini bu nesnenin özellikleri ve metodları halleder. Server nesnesinin bir özelliği (ScriptTimeout) ve dört metodu (CreateObject, HTMLEncode, URLEncode, MapPath) vardır. Web Server çalıştığı bilgisayarın sizin siteniz adına yönetiminden sorumludur; dolayısıyla bu kadar az özellik ve metodu var diye bu nesneden çok yararlanmayacağımızı sanmayın. ActiveX ve COM bileşenlerini çalıştırmak Server’ın görevidir. <h4>Server Script Time Out</h4> Bir sayfa içindeki script lerin belli bir süre içerisinde çalışması bekletilir.Bu süreyi kendiniz degiştirmediginiz ürece 90Sn dir.Yani 90 Sn içerisinde tamamlanmazsa çalışması durdurulur.<br> <br> Bunu degiştirmek için ise:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Server.ScriptTimeout = 145 %&gt;</div> <br>Bölelikle çalışma süresini 145 Sn çıkartmış oluruz bunu degiştire bilirsiniz.<br> <br>Böyle bir şeyi neden yapmak isteyebiliriz? Script'iniz çok karmaşık veya başka bir Server'daki veritabanından veri çekiyor, olabilir. Gerçi bu anlamda 90 saniye bilgisayar milleti için bir asır anlamına gelir, ama yine de durdurulmasaydı işini başarıyla tamamlayacak bir Script, bu sürenin kısalığı yüzünden Server tarafından durdurulabilir. ASP sayfalarınız çok karmaşıksa ve sürekli Timeout hatası veriyorsa, hata aramadan önce bu süreyi uzatabilirsiniz. <h4>Server.MapPath :</h4> MapPath (Yolu belirle) <br> <br>Web Server açısından “kök dizin” (root directory) Server’ın bulunduğu bilgisayarın sabit diskinde, herhangi bir klasör olabilir. <br> <br>Örneğin IIS için bu varsayılan değer olarak “C:netbupwwwroot” klasörüdür. Özellikle ASP ile “program niteliğinde siteler” yapmaya başladığımızda, sitenin ilgili bütün dosyalarının bulunduğu bir dizin için yol belirlemek isteyebiliriz. Bunu Server nesnesinin MapPath (Yolu belirle) metodu ile yapabiliriz:<br> <br>WebDizini = Server.MapPath(“/benim_site”)<br> <br>Bu komutla WebDizini değişkenin değeri muhtemelen şöyle olacaktır:<br> <br>“C:netbupwwwrootbenim_site” <h4>Server.CreateObject : </h4> createObject(ObjectID) <br> <br> Diyelim ki sayfanızda reklam amaçlı banner grafiklerini belirli zaman aralığı ile veya ziyaretçiye gönderdiğiniz Cookie (çerez) bilgilerine göre değiştirmek istiyorsunuz. Bunun için diyelim ki MS-Web Server Programının AdRotator bileşininden yararlanacaksınız; şöyle bir kod işinizi görebilir:<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;% Set Reklam = Server.CreateObject (“MSWS.AdRotator”)%&gt;<br> &lt;%= Reklam.GetAdvertisement(“/reklamlar/buyukbanka.txt”)%&gt;</div> <br>Burada GetAdvertisement, Server’ın AdRotator bileşininin bir metodudur. Server’ın CreateObject metodundan, veritabanına ulaşırken de yararlanacağız.<br> <br>&lt;% Set BenimDB = Server.CreateObject(&quot;ADODB.Connection&quot;) %&gt;<br> <br> ÖRNEK<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> '-- Bu kod ile veritabanı nesnesi tanımlandı. İstenirse burada serverde kayıtlı olan DLL dosyalar da tanımlanabilir. <br> Set Nesne=Server.CreateObject(&quot;ADODB.Connection&quot;)<br> %&gt;</div> <h4>HTMLEncode, URLEncode: </h4> İçinde HTML açısından kod parçası veya özel işaret sayılan karakterler bulunan metinleri sayfamıza içerik olarak göndereceğimiz zaman Server'ın işaretleri aynen metin gibi göndermesini sağlamak için, örneğin: <br> <br>Server.HTMLEncode(&quot;Değisken1 &lt; Değisken2&quot;)<br> <br>yazarsak, ASP bu metni HTML kodu olarak yorumlamaz, metin olarak algılar. <br> <br>Internet'te bazen özellikle sayfa adresleri belirtilirken bazı değerlerin &quot;URL Kodu&quot; dediğimiz şekilde kodlanmış olarak gönderilmesi gerekir. Bu kodlama türünde boşlukların yerine + işareti konmuş olması şarttır. Bu tür bilgiler göndereceğimiz zaman: <br> <br>Server.URLEncode(&quot;kelime 1 kelime2 kelime3&quot;)<br> <br>şeklindeki bir kod Bunu hemen şu şekle sokacaktır: kelime1+kelime2+kelime3 <br><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-6830935751992754019?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0tag:blogger.com,1999:blog-2337942599049980912.post-73522708043058437522008-10-27T15:13:00.003-07:002008-10-27T15:13:59.921-07:00Form Mail Hazırlama<h4> Form Mail </h4> Örnek: <br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;html&gt;<br> &lt;head&gt;<br> &lt;title&gt; MAIL GONDER &lt;/title&gt;<br> &lt;/head&gt;<br> &lt;body&gt;<br> &lt;form method=post action=&quot;mail.asp&quot;&gt;<br> Isim : &lt;input type=&quot;text&quot; name=&quot;isim&quot;&gt;&lt;br&gt;<br> Mail : &lt;input type=&quot;text&quot; name=&quot;mail&quot;&gt;&lt;br&gt;<br> Konu : &lt;input type=&quot;text&quot; name=&quot;konu&quot;&gt;&lt;br&gt;<br> Mesaj : &lt;textarea name=&quot;mesaj&quot; rows=&quot;&quot; cols=&quot;&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br> &lt;input type=&quot;submit&quot; value=&quot;yolla&quot;&gt;<br> &lt;/form&gt;<br> &lt;/body&gt;<br> &lt;/html&gt;</div> <h4>CDO İLE MAIL YOLLAMA</h4> En yaygın mail gonderme bileşenidir<br> <br> mail.asp (CDO ile)<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> ' formdan içerik al<br> isim = Request.form(&quot;isim&quot;)<br> mail = Request.form(&quot;mail&quot;)<br> konu = Request.form(&quot;konu&quot;)<br> mesaj = Request.form(&quot;mesaj&quot;)<br> <br>' mektup kime gidecek abisi<br> <br>kime = &quot;admin@site-adi.com&quot;<br> ' bir CDO Newmail nesne ornegi yarat<br> Set mektup = Server.CreateObject(&quot;CDONTS.NewMail&quot;)<br> ' çok açik, geleneksel atamalar<br> mektup.From = isim &amp; &quot; &lt;&quot; &amp; mail &amp; &quot;&gt;&quot;<br> mektup.To = kime<br> mektup.Subject = konu<br> mektup.Body = mesaj<br> ' hata olursa mizikçilik yapmadan devam et<br> on error resume next<br> ' ve sadede geldik.<br> mektup.Send<br> ' hata olusursa<br> <br>If err &lt;&gt; 0 Then<br> hata = err.description<br> Response.Write &quot;hata oldu: &quot; &amp; hata<br> Else ' is temizse<br> tebrik = &quot;Mailiniz yolladı&quot;<br> Response.Write tebrik<br> End If<br> ' açtigin nesneyi kapa...<br> Set mektup = Nothing<br> ' bitti<br> %&gt;</div> <h4>JMAIL ILE MAIL YOLLAMA</h4> mail.asp (JMAIL ile )<br> <br> <div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;"> &lt;%<br> ' formdan içerik al<br> isim = Request.form(&quot;isim&quot;)<br> mail = Request.form(&quot;mail&quot;)<br> konu = Request.form(&quot;konu&quot;)<br> mesaj = Request.form(&quot;mesaj&quot;)<br> ' mektup kime gidecek abisi...<br> kime = &quot;admin@site-adi.com&quot;<br> ' bir JMail SMTPMail nesnesi...<br> Set mektup = Server.CreateObject(&quot;JMail.SMTPMail&quot;)<br> ' SMTP sunucusu<br> mektup.ServerAddress = &quot;mail.Server.here&quot;<br> ' gonderen<br> mektup.Sender = isim &amp; &quot; &lt;&quot; &amp; mail &amp; &quot;&gt;&quot;<br> <br>' konu<br> mektup.Subject = konu<br> ' aliciyi belirle<br> mektup.AddRecipient = kime<br> mektup.Body = mesaj<br> On Error Resume Next<br> mektup.Execute<br> ' hata varsa<br> If err &lt;&gt; 0 Then<br> hata = err.description<br> Response.Write &quot;hata oldu: &quot; &amp; hata<br> Else ' is temizse<br> tebrik = &quot;mailiniz yolladı&quot;<br> Response.Write tebrik<br> End If<br> Set mektup = Nothing<br> %&gt;</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337942599049980912-7352270804305843752?l=asp-dersi.blogspot.com'/></div>googleyecevaplarnoreply@blogger.com0