Sensizliksokagi | Türkiyenin En Kaliteli Formu

 

Asp Nedir ve Temel Dersler

Webmaster Genel icinde Asp Nedir ve Temel Dersler konusu , ASP'nin Nesneleri Masa, nesnedir. Notebook bilgisayarınız da nesnedir! Arkadaşınız da bir nesnedir. Tabiî bunu onun yüzüne karşı söylemeseniz, iyi olur. Her nesnenin özellikleri vardır. Masa serttir. Su, içine konulduğu nesnenin ...


Geri Dön   Sensizliksokagi | Türkiyenin En Kaliteli Formu > WebMaster Genel Sorunları > Webmaster Genel

Kayıt ol Albümler Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et


Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 18-12-2007, 16:38   #11 (permalink)
Standart

ASP'nin Nesneleri

Masa, nesnedir. Notebook bilgisayarınız da nesnedir! Arkadaşınız da bir nesnedir. Tabiî bunu onun yüzüne karşı söylemeseniz, iyi olur. Her nesnenin özellikleri vardır. Masa serttir. Su, içine konulduğu nesnenin biçimi alır.
ASP tekniğinde de amacımız nesnelerin özelliklerini kullanarak, ya bu özellikleri belirlemek, ya da değiştirmektir. Nesne Yönelimli Programlama (Object Oriented Programming, OOP) kavramını daha önce çok duymuş olmalısınız. Bir önceki bölümde fonksiyonlarla, Sub'larla, değişkenlerle tanıştık. Diyelim ki öğretmensiniz (ah, nerede o günler!) ve ASP programınızda her öğrencinin notunu veritabanına işleyen, veritabanından notları alarak geçeni-kalanı belirleyen veya öğrencilerle ilgili daha yapılması gereken bir çok işi yapan fonksiyonlarınız ve Sub'larınız var; bunların kullandığı bir çok değişkeniniz var: demek ki sizin ASP programınızda "öğrenci" diye bir nesneniz var. Ve siz bu nesneye yönelimli program yapmışsınız!
Her "program nesnesi" iki unsura sahiptir:
Özellik (Property, Attribute): Bir nesnenin özellikleri, onun değişkenleridir. "Öğrenci" nesnesinin "Öğrencinin Adı," "Notları," "Adresi" gibi değişkenleri, yani özellikleri vardır.
Metod (Method): Bir nesnenin işlemesi, çalışması için, kısaca kendisinden bekleneni yerine getirebilmesi için çalışma yöntemlerine ihtiyacı vardır. Dolayısıyla bir ASP nesnesinin fonksiyonları, onun metodlarıdır.
Fakat ASP'de nesneler sadece sizin öbekler halinde toplayacağınız fonksiyonlar ve değişkenlerden ibaret değildir. Bir kere, ASP programında kullandığınız Script dilinin getirdiği nesneler vardır. ASP sayfasını Javascript ile yazarsanız başka, VBScript ile yazarsanız başka dil nesnelerine sahip olursunuz; ancak her ikisinde de ortak olan "Scripting" nesneleri vardır. Bunlara birazdan ayrıntılı ele alacağız. Sonra Web Server'ın size hazır sunduğu nesneler vardır. Bunları daha sonraki bölümde göreceğiz. Ve tabiî, Browser'ın bir HTML sayfasının bölümlerini nesne sayarak oluşturduğu nesneler vardır. Bunlara da diğer nesneleri ele alırken sırası geldikçe değineceğiz. (Tabiî bir de ASP programınızı Javascript ile yazarsanız, VBScript'ten farklı olarak kendisi nesne-yönelimli bir dil olan Javascript'in oluşturmanıza imkan vereceği nesneler vardır. Fakat bu nesneler, bu kitapçığın kapsamı dışında kalıyor.)
Nesneler nasıl oluşmuş olursa olsunlar, daima size bir değer verirler:
Kod:
<div align="LEFT">Nesne.Özellik = Değer </div>

Bir nesnenin bir özelliğinin değeri, bizim için bir değişken değeri gibi önem taşır:
Kod:
<div align="LEFT">If Nesne.Özellik > Değer Then ... </div>

Nesnelerin özelliklerinin değerlerini değişkenlere atayabiliriz; ancak bunu yaparken Nesne'nin bir metoduna (fonksiyonu) göndermede bulunmamız ve gerekiyorsa bu fonksiyona kullanması için veri göndermeliyiz (bir fonksiyona kullanması için gönderilen değere argüman/argument denir):
Kod:
<div align="LEFT">Degisken = Nesne.Metod(argüman1, argüman2...) </div>

Daha sonra bu değişkeni istediğimiz yerde kullanırız. Bu kadar teoriden sonra bir örnek nesne oluşturursak, belki işin içinden daha kolay çıkabiliriz.
Nesneler, diğer yararlarının yanı sıra, birbiri ile ilgili Sub'larımızı, fonksiyonlarımızı ve değişkenlerimizi birarada tutmamızı sağlar. Şimdi VBScript ile bir nesne oluşturabiliriz:
Kod:
<div align="LEFT"><%Class OgrenciPublic Adi, Soyadi, NoFunction AdiSoyadiAdiSoyadi = Adi & " " & SoyadiEnd FunctionEnd Class %></div>

Bir dakika! Nesne (object) adını verdik fakat Class (sınıf) oluşturduk! Bu grubun Object..End Object olması gerekmiyor mu? Belki haklısınız; ama bir "sınıf" ancak VBScript tarafından kullanılmaya başlanırsa Nesne olur. Dolayısıyla biz "sınıf" yazarız; VBScript onu Nesne haline getirir. Peki, nesneyi oluşturduk; şimdi bunu nasıl kullanacağız. Çok kolay; önce bu nesneden yeni bir olgu (instance) oluşturacağız; sonra.. Ama önce bunu nasıl yapacağımızı yazalım:
Kod:
<div align="LEFT"><%Dim Ogr1Set Ogr1 = New OgrenciOgr1.Adi = "Necip" Ogr1.Soyadi = "Fazıl"Ogr1.No = "181"Response.Write Ogr1.AdiSoyadi%></div>

Her nesne, New (yeni) komutu ile yeni bir değişkene bütün özelliklerini verir. Burada Ogr1 değişkeni, yukarıda oluşturduğumuz Ogrenci nesnesinin bütün özelliklerini kazanmış oluyor. Ogrenci nesnesinin ".Adi", ".Soyadi" ve ".No" özellikleri olması gerekir; nitekim Ogr1'e bu özelliklerini burada veriyoruz. Ogrenci nesnesinin bir de metodu (fonksiyonu) var; Ogr1 bunu da kazanabilir mi? Tabiî; hem kazanır, hem de bunu ziyaretçinin Browser penceresine yazdırabilir.
Nesne kavramını kavramak zordur. Fakat yukarıdaki örnekte görüldüğü gibi, ASP sayfalarınızda nesne oluşturarak çalışmaya alıştığınız zaman bunun sağladığı kolaylıktan kolayca vazgeçmeyeceksiniz.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:39   #12 (permalink)
Standart

Hata (Err) Nesnesi

Hangi dille olursa olsun program yazarken hata yapmak kaçınılmaz bir kuraldır. Dolayısıyla kullandığınız programlama dili hatalarınızı kolayca yakalamanıza imkan vermelidir. ASP programlarınızda yazım yanlışlığı, olmayan değişkene gönderme gibi Script hatası olmaması gerekir. Bu tür hatalar, program Web'e gönderilmeden mutlaka ayıklanmalıdır. Fakat programcı olarak öngöremeyeceğiniz, ve çoğu Web ziyaretçisinden veya ziyaretçinin bilgisayarından kaynaklanan hata durumları olabilir. VBScript, şu standart komutla beklenmedik hata durumlarında programın yoluna devam etmesini sağlayabilir:
Kod:
<div align="LEFT"><% On Error Resume Next %></div>

Bu komutla VBScript'e, hata halinde bir sonraki satırdan yoluna devam edecektir. Fakat oluşan hata, programın daha sonra vermesi beklenen sonucu vermesini önleyebilir. VBScript, Err (Hata) Nesnesi'nin bir çok özelliğinden özellikle hata sayısı (Number), tanımı (Description) ve kaynak (Source) özellikleri ile size hatanın ne olduğunu ve nereden kaynaklandığını söyleyebilir. Bu özellikleri kullanarak, programlarınızda, en azından geliştirme aşamasında, örneğin,
Kod:
<div align="LEFT">If Err:Number = xx Then</div>

şeklinde bir ifade ile hatanın türüne göre programın kazasız yürümesini sağlayabilirsiniz. Burada xx yerine 108 ayrı hata numarası yapabilirsiniz. Hata numaraları, Microsoft'un VBScript sitesinden edinilebilir.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:39   #13 (permalink)
Standart

Dosya Sistemi Nesnesi

Dosya Sistemi Nesnesi (FileSystemObject), ASP programının, Web Sunucusunun sabit disk sisteminde, sürücüleri, klasörleri ve dosyaları yönetmekte kullanacağımız temel araçtır. Burada, ne denli güçlü bir araçtan söz ettiğimizi hemen görebilmek için şu kodu yazalım ve Üyeler içindir. üye olun... adıyla kaydedelim:
Kod:
<div align="LEFT"><% Option Explicit %><HTML><HEAD><TITLE>ASP ILE DOSYA YAZMA</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim YaziFSO, yazSet YaziFSO = CreateObject("Scripting.FileSystemObject")Set yaz = YaziFSO.CreateTextFile("c:\yazi_deneme.txt",True)y az.WriteLine("Bu bir denemedir.")yaz.Close%><H2><CENTER>Bu Web sayfası sabit diske yazı yazdırır!!
Şimdi C: sürücüsünde yazi_deneme.txt adlı bir dosya olması gerekir!
Lütfen bakar mısınız?</H2></CENTER></BODY></HTML></div>

Kodumuzun Dim satırında iki değişken belirlediğimizi görüyorsunuz. Fakat bu iki değişkeni sistem nesnesi olan Scripting'in yeni bir olgusu olarak kullanacağımız için daha önce standart değişkenlere değer atadığımız gibi değil, fakat Set komutundan yararlanıyoruz, ve YaziFSO değişkeninde bir "Scripting.FileSystemObject" nesnesi oluşturulmasını sağlıyoruz. (ASP uzmanları arasında gelenek, nesne değeri tutan değişkenlere, ilgili nesnenin baş harflerini eklemektir. Böylece bir değişkenin adına bakarak, işlevini anlamak mümkün olur.)
"yaz" değişkeni YaziFSO'da yeni bir olgusunu oluşturduğumuz FileSystemObject'in CreateTextFile (Düzyazı dosyası oluştur) metodunu kullanıyoruz; bu metod oluşturulacak dosyanın adını ve eğer bu dosya varsa üzerine yazılmasına izin veren True (doğru) veya buna izin vermeyen False (yanlış) kelimesini argüman olarak alır. "yaz" değişkeni şimdi kendisi bir metod kullanabilecek şekilde, FileSystemObject'in bir örneğidir; nitekim WriteLine metodu ile biraz önce oluşturulan dosyaya, argüman olarak verdiğimiz metni yazdırmaktadır. Bu kodu çalıştırdıktan sonra, sabit diskinize bakarsanız, düzyazı dosyasını göreceksiniz:

Bugüne kadar Web tekniği olarak Browser'da bir sayfayı görüntüleyebileceğimizi sanıyor idiysek, sistem nesneleri kullanarak çok daha farklı şeyler yapabileceğimizi görmüş olduk. Şimdi FileSystemObject'i daha yakından tanıyabiliriz. Bu nesne bize sabit diske erişme ve onun kaynaklarını kullanma imkanı verir. Bütün nesneler gibi kullanılabilmesi için önce bir değişkenin bünyesinde oluşturulması gerekir:
Kod:
<div align="LEFT"><%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")%></div>

Dosya Sistemi Nesnesi'nin 20'den fazla metodu vardır; fakat bunlardan önemlileri şöyle sıralanabilir:
CopyFile (dosya kopyala), MoveFile (Dosya taşı), CopyFolder (klasör kopyala), MoveFolder (klasör taşı), CreateFolder (klasör oluştur), DeleteFile (dosya sil), DeleteFolder (klasör sil).
Şimdi bunlardan birinin nasıl kullanılabileceğine bir örnek verelim:
Kod:
<div align="LEFT"><%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")DosyaSis temi.DeleteFile "c:\belgelerim\test.*"%></div>

Bu program ile "Belgelerim" klasöründeki "test" isimli bütün dosyaları silmiş olursunuz. (Bu programı çalıştırmadan önce bir kaç kez düşünmeniz, sanırım iyi olur; çünkü ASP yoluyla sildiğiniz dosyalar, Geri Dönüşüm Kutusu'na gitmez!) Daha az zararlı bir diğer örnek ise şöyle olabilir:
Kod:
<div align="LEFT"> <%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")DosyaSis temi.CopyFile "c:\belgelerim\*.*", "c:\yedekler\"%> </div>

Bu program "Belgelerim" dizinindeki bütün dosyaları "Yedekler" dizinine kopyalar.
FileSystemObject'in sadece bir özelliği (Property) vardır: Drives (sürücüler). Fakat bu özellik, bir değil bir çok elemandan oluşan bir dizi-değişken gibi Kolleksiyon (Collection) sayılır. Neden? Çünkü bir Web Server'da birden çok sürücü bulunur. Her sürücü, bu kolleksiyonun üyesidir (FileSystem.Drives) ve her birinin sürücü harfi (.DriveLetter), disk adı (.VolumeName), byte olarak boş alanı (.FreeSpace) özellikleri vardır. suruculer.asp adıyla kaydedeceğiniz şu program, denediğiniz sistemin disk-disket-CD-ROM durumunu size listeleyecektir.
Kod:
<div align="LEFT"> <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE SÜRÜCÜ KOLLEKSİYONU</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim DosyaSistemi, Surucu, SuruculerSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")Set Suruculer = DosyaSistemi.DrivesFor Each Surucu In Suruculer%>Sürücü: <%=Surucu.DriveLetter%>
<% If Surucu.IsReady = True Then%>Disk Adı: <%=Surucu.VolumeName%>
Boş alan: <%=Surucu.FreeSpace%>
<% Else %>Sürücü hazır değil!
<% End IfNext %></BODY></HTML></div>

Burada özelliklerini ve metodlarını DosyaSistemi adlı değişkene atadığımız Dosya suistemi Nesnesi'nin sürücüler kolleksiyonunun dizi-değişken gibi olduğunu söylemiştik. For..Next akış kontrolü ile bu kolleksiyonun bütün üyelerinin sırayla sürücü harfi, ve hazırsa disk adı ve boş alanı bilgilerini alıyoruz. Drives kolleksiyonunun diğer özellikleri arasında toplam yüzey genişliği (TotalSize), sürücü türü (DriveType; 0=bilinmiyor; 1=çıkartılabilir; 2=sabit; 3=ağ; 4=CD-ROM; 5= RAM-Drive), ve dosya sistemi (FileSystem; FAT, NTFS, CDFS), kök dizin (RootFolder) vardır. Bu program bir PWS'da çalıştığında, şu sonucu alıyoruz:

VBScript açısından, her sürücüde klasörler (Folders) ve onların içinde alt-klasör (Subfolders) ve dosya (Files) kolleksiyonları bulunur. (Her klasörün içinde içinde bir alt-klasör nesnesi bulunduğu için ASP ile sonsuza kadar bütün klasörlere gönderme yapabilirsiniz. Klasör nesnesinin bazı özellikleri şunlardır:
Adı (Name), oluşturulma (DateCreated), erişim (DateLastAccessed), değiştirme (DateLastModified) tarihleri, içindeki dosyalar ve alt-klasörlerdeki dosyalarla birlikte boyutu (Size), bulunduğu sürücü (Drive), içinde bulunduğu klasör (ParentFolder), alt-klasörler (SubFolders), kök dizin olup olmadığı (IsRoot).
Klasör nesnesinin kopyala (Copy), sil (Delete) ve Taşı (Move) metodları vardır.
Dosya (File) nesnesinin de ad, oluşturma, erişim, değiştirme, boyut, sürücü ve içinde bulunduğu sürücü özellikleri, ve kopyala, sil, taşı metodları vardır.
PWS'ınızın bulunduğu sistemde, söz gelisi C: sürücüsünün kök dizinindeki bütün dosyaların listesini size veren bir kod şöyle yazılabilir (dosyalar.asp):
Kod:
<div align="LEFT"> <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE KLASOR - DOSYA KOLLEKSİYONU</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim DosyaSistemi, Surucu, Dosya, KokDizin, KokDosyalar, DosyaNesnesiDim SurucuHarfiSurucuHarfi = "C:"Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")Set Surucu = DosyaSistemi.GetDrive(SurucuHarfi)Set KokDizin = Surucu.RootFolderSet KokDosyalar = KokDizin.FilesFor Each DosyaNesnesi In KokDosyalar%><%=DosyaNesnesi.Name%>
<% Next %></BODY></HTML> </div>

Burada SurucuHarfi değişkenin değerini değistirerek, arzu ettiğiniz disk/disket veya CD-ROMa ulaşabilirsiniz. GetDrive metodu dikkatinizi çekmiş olmalı; bu metodla, VBScript, fiilen disk/disket sistemine erişir.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:40   #14 (permalink)
Standart

Metin (TextStream) Nesnesi

Dosya sistemi nesnesi bize disk sistemine, klasörlere ve dosyalara erişme imkanı verir ama yeni dosyaları oluşturmak veya mevcutlara ek yapmak için yeterli özellik ve metoddan yoksundur. Bunu TextSream nesnesi sağlar.
Bilgisayar işletim sistemlerinin anası, Unix'e aşina iseniz, klavyeden sabit diske kadar bir bilgisayara girdi akımı bulunduğunu, bunlardan birinin de metinler olduğunu hatırlayacaksınız (Aşina değilseniz, şimdi oldunuz!). Bir işletim sistemi, metin dosyalarını okurken, yazarken bir metin akışı olur; TextStream nesnesinin adı da bunu anlatıyor: Metin Akımı. 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, örneğin ziyaretçilerin sitemize bırakacakları form bilgilerini Web Server'ın sabit diskine yazdırabiliriz. Veya mevcut metinleri okuyabilir ve bunların içeriğini ziyaretçimize göndereceğimiz HTML sayfanın etiketlerinin içeriği olarak kullanabiliriz. Metin dosyası okumak ve yazmak disk sistemini ilgilendiren bir eylem olduğu için yine Scripting nesnelerinden FileSystemObject nesnesinden yararlanacağız; fakat bu kez değişik metodlar kullanacağız.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:41   #15 (permalink)
Standart

Metin Dosyası Oluşturma (CreateTextFile)

Aslında biraz önce, ASP nesnelerinin neler yapabileceğine örnek olarak yazıp Üyeler içindir. üye olun... adıyla kaydettiğimiz program, bir metin dosyasını yazdırma işlemiydi. Oradaki kodlara yeniden göz atarsanız, CreateTextFile (metin dosyası oluştur) metodunu yardıma çağırıyor ve bu metoda argüman olarak yeni metin dosyasının yolunu ve adını veriyorduk. Bu metod TextStream nesnesinindir; ve otomatik olarak bu nesnenin diğer metodlarını kullanmamızı sağlar. kullandığımız metodlar ise WriteLine (satır yaz: bir String'i sonuna yeni satır karakteri koyarak dosyaya yazar) ve Close (kapat: açılan metin dosyasını kapatır).
TextStream'in burada kullandığımız ikisinin dışında iki metodu daha vardır:
Write (yaz): Bir String'i dosyaya yazdırır; satır sonuna yeni batır karakteri (Return kodu) koymaz.
WriteBlankLines (boş satır yaz): Bir metin dosyasına argüman olarak vereceğiniz sayıda boş satır yazdırır.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:41   #16 (permalink)
Standart

Varolan Metin Dosyasına Ek Yapma (OpenTextFile)

Metin yazdırma işlerinde sık sık uygulayacağımız bir senaryo, mevcut bir metin dosyasına ek yapmak olacaktır. Örneğin bütün ziyaretçilerimizin sitemizdeki konuk defterine yazdıklarını, bir metin dosyasında toplamak isteyebiliriz.
Bunu OpenTextFile metodu ile yapacağız. Bu metod, tahmin edeceğiniz gibi, açılacak dosyanın yolunu ve adını isteyecektir. Örneğin, dosya_yaz.asp'nin ilgili satırı şöyle olacak:
Kod:
<div align="LEFT">Set yaz = YaziFSO.OpenTextFile("c:\yazi_deneme.txt",8,0)</div>

Burada dosya yolunu ve adını veren birinci argümana ek olarak iki yeni argüman görüyorsunuz: "8,0" şeklinde. Bunlardan birinicisi girdi/çıktı durumu (I/O Mode), ikincisi ise biçim (Format) ile ilgilidir. I/O Mode parametreleri şunlardır: <blockquote>1: okumak için aç
8: eklemek için aç </blockquote>Açılacak dosyanın biçimini belirttiğimiz son argüman ise şu değerlerden birini alabilir: <blockquote>0: ASCII dosyası olarak aç
-1: Unicode dosyası olarak aç (Örneğin içinde Türkçe karakterler varsa)
-2: Sistemin varsayılan dosya türü olarak aç </blockquote>Buna göre, bir dosyayı salt okumak için açmak amacıyla "1,0" argümanlarını kullanmamız gerekir. Diyelim ki bir dosyayı açtık. İçindekileri nasıl okuyabiliriz? Bir döngüyle. İşte örneği:
Kod:
<div align="LEFT"> <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE DOSYADAN METİN OKUMA</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim DosyaSistemi, MetinDosyasi, SatirSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")Set MetinDosyasi = DosyaSistemi.OpenTextFile("c:\yazi_deneme.txt",1, 0)DoSatir = MetinDosyasi.ReadLine%><%=Satir%><%Loop Until MetinDosyasi.AtEndOfStreamMetinDosyasi.Close%></BODY></HTML></div>

Burada kullandığımız metod dikkatinizi çekmiş olmalı: ReadLine. Bu, açılan metin dosyasından bir satır okutmamızı sağlar. İkinci ve son satırları okutmamızı ise Do..Loop kontrolü sağlıyor. Bu döngü ne kadar sürüyor? MetinDosyası nesnesi, AtEndOfStream (akımın sonunda) oluncaya kadar. Bu, dosyanın sonuna geldiğimiz anda ortaya çıkan bir durum; bu durumla karşılaştığı anda Do..Loop, yaptığı işi durdurup, bir sonraki komuta geçecektir. Burada kullandığımız ReadLine metoduna ek olarak yararlanabileceğimiz diğer metodlar ise şunlardır:
Read (oku): Bir sayı örgümanı ile çalışır ve verdiğiniz sayı kadar karakter okur.
ReadLine (satır oku): Bir satır okur ve String olarak verir.
ReadAll (tümünü oku): Bütün satırları okur ve tek String olarak verir.
Skip (atla): Bir sayı argümanı ile çalışır ve verdiğiniz sayı kadar karakteri atlar.
SkipLine (satır atla): Bir sonraki satıra atlar.
Bu metodlarla sağladığımız okuma işinin kontrolü amacıyla şu özellikleri de kullanabiliriz:
AtEndOfStream (akımın sonunda): Okutulan dosyanın sonuna gelinmesi halinde True (doğru) olur.
AtEndOfLine (satırın sonunda): Okutulan satırın sonuna gelinmesi halinde True (doğru) olur.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:41   #17 (permalink)
Standart

Sunucu (Server) Nesneleri

Buraya kadar ele aldığımız nesneler bir anlamda bizim sadece tek tek sayfalarda yararlanacağımız araçları sağlıyor. Oysa ASP'yi diğer CGI teknolojilerinden ayıran başlıca özelliklerden biri tek tek Web sayfalarını sanki bir bilgisayar programının çeşitli pencereleri, diyalog kutuları, mesaj kutuları, girdi kutuları gibi, birarada bir "uygulama programı" olarak bağlayabilmesidir. Başka bir deyişle bize, ziyaretçinin sitemize bağlandığı ve ana sayfamızı açtığı andan itibaren sitemizin bir program bütünlüğünde çalışmasını sağlayacak araçlar gerekir. Bunu ancak Web Server'ın yardımıyla yapabiliriz.
ASP sayfalarımızda kullanacağımız ikinci grup nesne, Sunucu Nesneleri'dir. Bu grupta tabiî önce Sunucu'nun kendisi yer alır; sonra ziyaretçi ile kurduğumuz ilişki gelir. Ziyaretçi ile ilişkimizi iki yönlü trafiğe benzetebilirsiniz: ondan bize gelen talepler, bizim ona karşılıklarımız.
Ziyaretçiden bize gelen trafiğe neden "Talep" diyoruz? Ziyaretçi, Browser'ının URL hanesine yazdığı her adresle, veya formlardaki bir düğmeyi veya sayfalarımızdaki herhangi bir köprüyü tıklamakla, Server'a "Bana şunu göndersene!" demiş olur. Bu taleptir. Ziyaretçi taleplerinin tümü Talep Nesnesi (Request Object) olarak bir arada ele alınabilir. Server'ın bu taleplere verdiği karşılıklar, yani ziyaretçinin Browser'ına gönderdiği sayfalar, resimler, sesler, videolar ise karşılıktır ve ASP açısından Karşılık Nesnesi'ni (Response Object) oluşturur.
Bu bölümde bu nesneleri daha yakından tanıyacağız.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:41   #18 (permalink)
Standart

Server Nesnesi

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.
ScriptTimeout Özelliği: Diyelim ki bir ASP Script'i ya bizim, ya ziyaretçinin, ya da Server'ın bir hatası üzünden sonsuz döngüye girdi! Döngünün durması için gerekli şart asla yerine gelmiyor ve Script bir türlü yapacağı işi yapıp, sonlandırmıyor. Bu durumlarda ziyaretçinin ve tabiî Server'ın sonsuza kadar beklemesi mümkün değil! Programın bir şekilde durdurulması gerekir. Bunu hemen hemen bütün Web server programlarının Script Timeout (Script süre sınırı) diyalog kutusuna bir değer girilerek yapılır. Öreğin MS-Internet Information Server için varsayılan Script Timeout süresi 90 saniyedir. Yani ISS, herhangi bir Script'in çalışıp-durmasını 90 saniye bekler; bu sürenin sonunda Script'in çalışması tamamlanmazsa ziyaretçiye arzu ettiği sayfanın veya unsurun bulunamadığını bildirir. Bu süreyi (Server'ın varsayılan değerinin altında) kısaltmak değilse bile uzatmak elimizdedir. Bunu ScriptTimeout özelliğini kullanarak yaparız. ASP sayfasının herhangi bir yerine örneğin şu kodu koymak yeter:
Kod:
<div align="LEFT"><% Server.ScriptTimeout = 100 %></div>

Bu örneğe göre Server'ın varsayılan Script Timeout süresi 90 saniye ise 100 saniyeye çıkmış olur.
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.
CreateObject Metodu: İlk ASP kodunu yazdığımız andan beri bu metodu kullandığımızı görüyorsunuz. CreateObject (nesne oluştur) olmasa idi, dört mevsim birbirini izleyebilir, Dünya Güneş'in etrafında dönebilir miydi? Hiç sanmam. Fakat lütfen o CreateObject ile bu CreateObject'i birbirine karıştırmayın. Yukarıda kullandıklarımız Scripting nesnesinin bir metodu idi; bu Server nesnesine aittir. 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:
Kod:
<div align="LEFT"> <% Set Reklam = Server.CreateObject ("MSWS.AdRotator")%><%= Reklam.GetAdvertisement("/reklamlar/buyukbanka.txt")%></div>

Burada GetAdvertisement, Server'ın AdRotator bileşininin bir metodudur. Server'ın CreateObject metodundan, veritabanına ulaşırken de yararlanacağız.
MapPath (Yolu belirle) Metodu: Web Server açısından "kök dizin" (root directory) Server'ın bulunduğu bilgisayarın sabit diskinde, herhangi bir klasör olabilir. Örneğin IIS için bu varsayılan değer olarak "C:\inetbup\wwwroot" 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:
Kod:
<div align="LEFT"> WebDizini = Server.MapPath("/benim_site")</div>

Bu komutla WebDizini değişkenin değeri muhtemelen şöyle olacaktır: "C:\inetbup\wwwroot\benim_site\" Fakat bu metodun sadece böyle duragan biçimde kullanılması gerekmez; bazen sayfalarımızda ziyaretçi ile etkileşmenin sonucu olarak varsayılan Web dizinimizi değiştirmek isteyebiliriz. Sözgelimi biri Türkçe, diğeri İngilizce iki sitemiz varsa, ve ana sayfamızda ziyaretçi Türkçe'yi seçtiyse, o noktadan itibaren Web uygulamamız için Web kök-dizini, "/turkish/" olacak ve mesela resimlerimiz için verdiğimiz "/resimler/" dizini kök dizinde değil, "/turkish/resimler/" klasöründe aranacaktır. Web yolunu dinamik olarak, yani ziyaretçinin tercihine bağlı şekilde değiştirebilmek için, önce ziyaretçiden gelecek bilgileri nasıl kullanacağımıza, yani Request (talep) nesnesine değinmemiz gerekir.
HTMLEncode, URLEncode: İç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:
Kod:
<div align="LEFT"> Server.HTMLEncode("Değisken1 < Değisken2")</div>

yazarsak, ASP bu metni HTML kodu olarak yorumlamaz, metin olarak algılar.
Internet'te bazen özellikle sayfa adresleri belirtilirken bazı değerlerin "URL Kodu" 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:
Kod:
<div align="LEFT"> Server.URLEncode("kelime 1 kelime2 kelime3")</div>

şeklindeki bir kod Bunu hemen şu şekle sokacaktır:
kelime1+kelime2+kelime3
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:42   #19 (permalink)
Standart

Talep (Request) Nesnesi

Web Server çok akıllı bir programdır; bir Web ziyaretçisi herhangi bir talepte bulunduğu, yani bir sayfanın gönderilmesini istediği anda, bu talebi, bir nesne halinde ele alır; kolleksiyonlar oluşturur. Bu kolleksiyonlar, HTTP protokolü ile iletişimin sonucu olarak ziyaretçinin Browser'ından ve Internet'e giriş noktası olan ISS'in bilgisayarından başlayan ve Web Server'dan derlenen bir dizi bilgidir. Bir anlamda, Request nesnesi, Web programımızın Girdi (Input) bölümünü oluşturur.
Request nesnesi kendi içinde dört ana nesne barındırır


QueryString ve Form

Web ziyaretçisinin bilgisayarından kalkıp Server'a gelen herşey, QueryString kolleksiyonunu oluşturur. Bu ziyaretçinin Browser'ın URL adresi hanesine yazdığı bir basit HTML sayfası yolu ve adı olabilir; bir Form'un Gönder düğmesini tıkladığında gelen bilgiler olabilir. Bu bilgilerin şu özelliklerini kullanabiliriz:
Content_Length: Bir Form'dan gelen bilgilerin tümümün byte olarak boyutudur.
Remote_Host: Ziyaretçinin IP adresini verir; ancak Internet'e çevirmeli ağ ile bağlanan ziyaretçilerimiz her seferinde farklı bir IP bildirebilirler. Bu yüzden bu bilgiyi ziyaretçinin kimliği sayamayız.
Request_Method: Form'da kullandığımız GET veya POST metodunu bildirir. İki yöntemle gelen bilgi farklıdır. Form'un oluşturduğu bilgileri GET yöntemi ile alırsak bu, çevre değişkenlerinden QUERY_STRING değişkeninin içine yazılır. Başka bir ifade ile Form'daki bütün değişkenlerin adları ve bu değişkenin içerdiği değer yumak yapılır (bu yumağın niteliğine ve nasıl çözeceğimize geleceğiz!) ve Server'da QUERY_STRING değişkeninin değeri olarak yazılır. Form'un bilgilerini POST yoluyla alıyorsak bunlar Request nesnesinin Form kolleksiyonunun içinde Form'un değişken adları ve ziyaretçinin bu değişkenler için sağladığı değerler olarak ayrı ayrı yazılır. GET ile sınırlı, POST ile sınırsız bilgi alabiliriz.
Script_Name: O anda çalıştırılmakta olan ASP sayfasının adını verir.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:42   #20 (permalink)
Standart

ServerVariables (Server Değişkenleri)

Request nesnesinin bir diğer kolleksiyonu, bizim 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ındaziyaretçinin Browser'ına ilişkin bilgiler de vardır. Önce þu kısa ASP sayfasını çalıştırarak kendi Server'ımızın şu andaki değişkenlerini görelim; sonra bunları ayrıntılı ele alalım Üyeler içindir. üye olun...):
Kod:
<div align="LEFT"> <HTML><HEAD><TITLE>HTTP ServerDegişkenleri Kolleksiyonu</TITLE><meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"><meta http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY BGCOLOR=white><CENTER><H2>HTTP Server Değişkenleri Kolleksiyonu</H2></CENTER><TABLE BORDER=1><TR><TD>Değişkenin adı</TD> <TD>Değeri</TD></TR><% For Each key in Request.ServerVariables %><TR><TD><% = key %></TD><TD><%If Request.ServerVariables(key) = "" ThenResponse.Write " " Else Response.Write Request.ServerVariables(key)End IfResponse.Write "</TD>"%></TR><% Next %></TABLE>

Sizin Host'unuzun adı: <%=Request.ServerVariables("HTTP_HOST")%></BODY></HTML> </div>

Değişkenin adı Değeri
ALL_HTTP:HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde "HTTP_" öneki vardır.

ALL_RAW HTTP:Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser'ın verdiği şekilde gösterilir.

APPL_MD_PATH:Web Server'ın ISAPI.DLL dosyası için varsaydığı kök dizin

APPL_PHYSICAL_PATH:Web Server'ın varsaydığı kök dizinin gerçek yolu

AUTH_PASSWORD:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola

AUTH_TYPE:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi

AUTH_USER:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı

CERT_COOKIE:Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)

CERT_FLAGS:Sertifikanın varlığını gösteren bit değeri

CERT_ISSUER:Sertifika varsa veren kurum

CERT_KEYSIZE:Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri

CERT_SECRETKEYSIZE:Özel anahtar değeri

CERT_SERIALNUMBER:Sertifika seri no.

CERT_SERVER_ISSUER:Sertifikayı veren merci

CERT_SERVER_SUBJECT:Server Sertifikasının "konu" alanı değeri

CERT_SUBJECT:İstemci Sertifikasının konu alanı değeri

CONTENT_LENGTH:İstemcinin gönderdiği bilgi yumağının boyutu

CONTENT_TYPE:Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür

GATEWAY_INTERFACE:Web Server'ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1

HTTPS:Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF

HTTPS_KEYSIZE:Secure Sockets Layer için bağlantı anahtar sayısı

HTTPS_SECRETKEYSIZE:Özel Server sertifikasının gizli anahtar sayısı

HTTPS_SERVER_ISSUER:Özel Server sertifikasının veren merci

HTTPS_SERVER_SUBJECT:Özel Server sertifikasının konusu

INSTANCE_ID:Web Server'ın aynı anda kaç kere çalışmakta olduğu

INSTANCE_META_PATH:Şu anda çalışmakta olan Web Server'ın Meta yolu

LOCAL_ADDR:İstemcinin IP numarası

LOGON_USER:İstemci Windows NT sisteminde ise oturum açma adı

PATH_INFO:Çalışmakta olan ASP'nin göreli yolu ve adı

PATH_TRANSLATED:Çalışmakta olan ASP'nin gerçek yolu ve adı

QUERY_STRING:İstemcinin gönderdiği bilgi kümesi

REMOTE_ADDR:İstemcinin Host'unun (ISS'inin) IP'si

REMOTE_HOST:İstemcinin Host'unun (ISS'inin) adı

REMOTE_USER:İstemcinin gerçek adı

REQUEST_METHOD:İstemciden bilgi isteme yöntemi (GET veya POST)

SCRIPT_NAME:Çalışmakta olan ASP'nin adı

SERVER_NAME:Sunucu'nun adı

SERVER_PORT:Sunucuya bağlantının geldiği TCP kapı numarası

SERVER_PORT_SECURE:TCP kapısı güvenli ise 1, değilse 0

SERVER_PROTOCOL:Server'ın çalıştırdığı HTTP'nin sürümü

SERVER_SOFTWARE:Server programının adı ve sürümü

URL:Şu anda geçerli URL
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Yeni Konu aç Cevapla

Bookmarks

Etiketler
dersler, temel, nedir, asp


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Okulda En Sevmediginiz Dersler ScReAm Anketler 55 30-11-2008 22:07
HTML Nedir ve Temel Dersler SHADOWS Webmaster Genel 8 25-02-2008 23:12
Pascal Temel Dersler! SHADOWS Resimli Program Anlatımı 11 18-12-2007 18:40
Temel'den Dünyanın Temel Sorunları :) herhangibiri Fıkralar 14 09-06-2007 22:07
MIT - Görüntülü Dersler SHADOWS Dökümanlar 0 22-12-2006 12:37


Türkiye +4. Şuan Saat: 13:14.

Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 knight online
site ekle Alexa Toolbar TOPlist Message Board Statistics