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 "asp.dll" adlı bir programa iletir. asp.dll'de aldığı bu dosyayı
hemen yorumlamaz. "Global.asa" 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;">
<%<br>
DIM Gun, Ay, Ogrenci, Not<br>
Gun = "Sali"<br>
Ay = "Mart"<br>
Ogrenci = "Selcuk"<br>
Not = 5<br>
%></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;">
<% OPTION EXPLICIT %></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 = "Freelancer Web Tasarım " <br>
Const Slogan = "WebMastering"
<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;">
<%<br>
Dim dizi(4)<br>
%></div>
<br>burada dikkat edeceğiniz husus 5 elemanlı bir dizi için "4"
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;">
<%<br>
dizi(0) = "Mete Kaan"<br>
dizi(1) = "Alp Uygur"<br>
dizi(2) = "Atila Yayla"<br>
dizi(3) = "Tuncay Efe"<br>
dizi(4) = "Cengiz Orhan"<br>
%></div>
<br>
Seri şekilde değer atama<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
dizi = Array("Mete Kaan"," Alp Uygur","
Atila Yayla"," Tuncay Efe"," Cengiz Orhan
")<br>
%> </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;">
<%<br>
Dim dizi(2,2)<br>
%></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;">
<%<br>
<br>dizi(1,1) = 1<br>
dizi(1,2) = 2<br>
dizi(2,1) = 2<br>
dizi(2,2)= 1<br>
<br>
%></div>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Dim dizi (3,3) <br>
%> </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;">
<%<br>
dizi (0,0)="test" <br>
dizi (0,1)="deneme" <br>
dizi (0,2)="test2" <br>
dizi (1,0)="deneme2" <br>
dizi (1,1)="111-23-4" <br>
dizi (1,2)="iskender" <br>
%> </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 = "15"<br>
degisken_3 = "Zeytinyagli yiyemem amaan, basma da fistan giyemem
aman."<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 " " işaretleri içerisinde yer almalıdır.<br>
Adi="Gökhan"<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;">
<%<br>
<br>Dizi = "ASP kursu içerisinde VBScripti isliyoruz"<br>
AranacakStr = "VB"<br>
<br>Kacinci = InStr(Dizi, AranacakStr)<br>
<br>Response.Write Kacinci<br>
<br>
%></div>
<br>Burada ekranımızda görünecek olan sayi 22’dir. "VB" 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;">
<% Dizi = "Erciyes"<br>
Response.Write Len(Dizi)<br>
%> </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;">
<%<br>
YeniString = UCase(Degisken)<br>
%></div>
<br>Yeni String'in değeri: "ASP OGRENIYORUM" 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;">
<%<br>
YeniString = LCase(Degisken)<br>
%> </div>
<br>Yeni String'in değeri: "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;">
<%<br>
Bosluk = Space(20)<br>
%> </div>
<br> Bosluk değişkenin değeri " " (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;">
<%<br>
YeniString = String(3, "*")<br>
%> </div>
<br> YeniString değişkeninin değeri "***" olacaktır.
<h4>Left(Degisken, Sayi):</h4>
Bir yazı dizisindeki karakterlerin, soldan "Sayı" kadarını
gösterir<br>
<br>
Örnegin:<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Soldanbes = Left("ASP ögreniyoruz.", 5)<br>
Response.Write soldanbes<br>
%></div>
<br>Sonucumuz "ASP ö" olacaktır. <br>
<br>Right(Degisken, Sayi): Bir yazi dizisindeki karakterlerin, sagdan
"Sayi" 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;">
<% Degisken = "ASP ögreniyoruz"<br>
YeniDegisken = Mid(Degisken, 4, 2)<br>
Response.Write YeniDegisken<br>
%> </div>
<br>"ög" 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;">
<% Degisken = "ASP ögreniyoruz"<br>
YeniDegisken = Replace(Degisken, "uz", "m ben
de")<br>
Response.Write YeniDegisken<br>
%></div>
<br>Ekrana yazilacak sonuç "ASP ögreniyorum ben de" 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;">
<%<br>
Tamsayi = Int(KesirliSayi)<br>
%></div>
<br>Tamsayi değişkenin değeri 123 olur.
<h4>Round()</h4>
fonksiyonu, kesirli bir sayıyı yukarı veya aşağı "yuvarlayarak"
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;">
<%<br>
Tamsayi = Int(KesirliSayi)<br>
%> </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;">
<% <br>
Set MyPageCounter = Server.CreateObject("MSWC.PageCounter")<br>
MyPageCounter.PageHit<br>
%><br>
Bu Web sayfası <%= MyPageCounter.Hits %> 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;">
<%<br>
Set VT= Server.CreateObject("ADODB.Connection" )
<br>
VT.Open "DBQ=" & Server.MapPath(" uyeler.mdb"
) & ";DRIVER={Microsoft Access Driver (*.mdb)}"<br>
Set KS = Server.CreateObject ("ADODB.RecordSet"
) <br>
Sql = " Select * from table1 "<br>
KS.Open sql,VT,1,3<br>
%><br>
<br><%<br>
KS.AddNew<br>
KS ("uyeAdi") = "Mete"<br>
KS ("uyeSoyadi") = "Uygur"<br>
KS ("email") = "meteuygur@xxxxx.com"<br>
KS ("mesaj") = "Benim Mesajım"<br>
KS.Update<br>
%><br>
<br><%<br>
KS.close<br>
set KS=nothing<br>
VT.close<br>
set VT=nothing<br>
%></div>
<h4>
Update: Kayıt Guncelleme
</h4>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Set VT= Server.CreateObject("ADODB.Connection" )
<br>
VT.Open "DBQ=" & Server.MapPath(" uyeler.mdb"
) & ";DRIVER={Microsoft Access Driver (*.mdb)}"<br>
Set KS = Server.CreateObject ("ADODB.RecordSet"
) <br>
Sql = " Select * from table1 where uyeNo = 1"<br>
KS.Open sql,VT,1,3<br>
%><br>
<br>
<%<br>
KS ("uyeAdi") = "Kaan"<br>
KS ("uyeSoyadi") = "Ateş"<br>
KS ("email") = "kaanates@xxxxx.com"<br>
KS ("mesaj") = "Kaanın Mesajı"<br>
KS.Update<br>
%><br>
<br> <%<br>
KS.close<br>
set KS=nothing<br>
VT.close<br>
set VT=nothing<br>
%></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;">
<%<br>
Set VT= Server.CreateObject("ADODB.Connection" )
<br>
VT.Open "DBQ=" & Server.MapPath(" uyeler.mdb"
) & ";DRIVER={Microsoft Access Driver (*.mdb)}"<br>
Set KS = Server.CreateObject ("ADODB.RecordSet"
) <br>
Sql = " Select * from table1 where uyeNo = 1"<br>
KS.Open sql,VT,1,3<br>
%><br>
<br>
<%<br>
KS.Delete<br>
%><br>
<br> <%<br>
KS.close<br>
set KS=nothing<br>
VT.close<br>
set VT=nothing<br>
%></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 "3" ve "1" 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;">
<%<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>
………%></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 "include" 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><!-- #include file="adovbs.inc" --> <br>
veya<br>
<!--#include virtual="/adovbs.inc"--><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;">
<HTML><br>
<HEAD><br> <TITLE>HTTP ServerDegişkenleri
</TITLE><br> </HEAD><br> <BODY><br> <CENTER><br>
HTTP Server Değişkenleri Kolleksiyonu<br> </CENTER><br>
<TABLE BORDER=1><br> <TR><TD><B>Değişkenin
adı</B></TD> <TD><B>Değeri</B></TD></TR><br>
<% For Each key in Request.ServerVariables %><br> <TR><br>
<TD><% = key %></TD><br> <TD><br> <%If
Request.ServerVariables(key) = "" Then<br>
Response.Write "&nbsp;" <br>
Else <br>
Response.Write Request.ServerVariables(key)<br>
End If<br>
Response.Write "</TD>"%><br> </TR><br>
<% Next %><br> </TABLE><br> <p><br>
Host'unuzun adı:<B> <%=Request.ServerVariables("HTTP_HOST")%></B><br>
</BODY><br>
</HTML></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> • Veritabanı bağlantısının oluşturulması<br>
• Veritabanı başlantısının açılması<br>
• Kayıt dizisinin oluşturulması<br>
• Kayıt dizisinin açılması <br>
• ...Veritabanı ile yapılacak işlemler <br>
• Kayıt dizisinin kapatılması<br>
• 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ðlantısı kullanmadan bir veritabanı bağlantısı
oluşturabiliriz. Kuşkusuz bul yol çok daha kolaydır.
<h4>ODBC ile DSN Bağlantısı</h4>
Öncelikle bilgisayarınızda veritabanı oluşturma programı
ö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ürü<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çilacak kutuda Add/Ekle dügmesini tiklayarak, yeni veri kaynagi olusturmak
için ilk adim olan veriyi okumakta kullanacagimiz sürücüyü
seçebilecegimiz kutunun açilmasini saglayin. Burada, yukarida olusturdugunuz
veri dosyasina uygun sürücüyü seçin. Örnek uyeler.mdb'yi
kullaniyorsaniz, birinci seçenek olan Microsoft Access Driver'i seçmeniz
gerekir. Son dü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 "uyeler" yazın;
çünkü örneklerde bu veriye "uyeler" 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; "uyeler" 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;">
<%<br>
Dim Veriyolu<br>
Set Veriyolu = Server.CreateObject("ADODB.Connection")<br>
Veriyolu.Open "uyeler "<br>
%> <br>
Recordset (Kayıt dizisi)
<p><%<br>
Dim Veriyolu, Kayitdizisi<br>
Set Veriyolu = Server.CreateObject("ADODB.Connection")<br>
Veriyolu.Open "uyeler"<br>
Set Kayitdizisi = Veriyolu.Execute("SELECT * FROM table1")<br>
%></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;">
<%<br>
Dim Veriyolu, Kayitdizisi, Sorgu<br>
Set Veriyolu = Server.CreateObject("ADODB.Connection")<br>
Veriyolu.Open "uyeler"<br>
Set Kayitdizisi = Server.CreateObject("ADODB.Recordset")<br>
Sorgu = "SELECT * FROM table1"<br>
Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic<br>
%><br>
Dns Siz baðlantý<br> <%<br>
Set VT= Server.CreateObject("ADODB.Connection" ) <br>
VT.Open "DBQ=" & Server.MapPath(" uyeler.mdb"
) & ";DRIVER={Microsoft Access Driver (*.mdb)}"<br>
%></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;">
<%<br>
Set KS = Server.CreateObject ("ADODB.RecordSet" )
<br>
Sql = " Select * from table1 "<br>
KS.Open sql,VT,1,3<br>
%></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. "VT" 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. "VT"
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;">
<%<br>
set KS=nothing<br>
set VT=nothing<br>
%> </div>
<br>
Örnek Kullanm :<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<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;">
<%<br>
Response.Expires = 0<br>
'Expires sayesinde sayfanın içeriğinin bilgilerinin cache
bellekte saklanmasını engelleriz.<br>
%><br>
<br><%<br>
If (Application("Sayac") = "") Then<br>
'Bu ziyaretçi için Application başlatılmadıysa başlatılsın.<br>
Application("Sayac") = 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>
<%<br>
Application("Sayac") = Application("Sayac")
+ 1<br>
Application.UnLock<br>
'Ve tekrar serbest bırakıyoruz. Diğer kullanıcılarla bu Application<br>
'kullanılabilsin diye... <br>
%><br>
Bu Sayfaya <%= Application("Sayac") %> 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><% On Error Resume next %> <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> "Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Veri kaynağı adı bulunamadı
ve varsayılan sürücü belirtilmemiş"<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> "Microsoft VBScript çalışma hatası (0x800A004C)
Yol bulunamadı"<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"<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."<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> "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ç)"<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> "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."<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> "Microsoft VBScript çalışma hatası
(0x800A000D) Tür uyumsuz: 'a'"<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> "Microsoft VBScript derleme hatası
(0x800A0409) Sonlandırılmamış dize sabiti"<br></td>
</tr>
<tr>
<td height="21"> <br>Sebebi<br></td>
<td> <br> Çift tırnak (") 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> "Microsoft VBScript derleme hatası
(0x800A03F6) 'End gerekli"<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 "end if" 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 (%>)<br></td>
</tr>
<tr>
<td height="21"> <br>Sebebi<br></td>
<td> <br> Kodlarınızı "%>" ile kapatmamışsınız<br></td>
</tr>
<tr>
<td><br>Çözümü<br></td>
<td><br> "%>" 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;">
<!-- #include file="veri.asp" --><br>
Bu kodu ASP taglarının dışına yazabiliriz. Fakat; <br> <%<br>
Server.Transfer("veri.asp")<br>
%></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;">
<%<br>
YeniYol = FSO.BuildPath("C:Inetpubwwwroot","images")<br>
%></div>
<br>
YeniYol değişkeninin değeri "C:Inetpubwwwrootmages" olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.BuildPath("Metin","Aksu")<br>
%></div>
<br> Çıktısı "MetinAksu" olur.<br>
<br>
Sadece tek bir isim kullanmak zorunda değilsiniz. "images" yerine "imagesdeneme"
şeklinde de verebilirsiniz. Bu durumda da çıktı "C:Inetpubwwwrootmagesdeneme"
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;">
<%<br>
YeniYol = "C:Inetpubwwwroot" & ""
& "images"<br>
%></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;">
<%<br>
YeniYol = FSO.BuildPath("C:Inetpubwwwroot","mages")<br>
%></div>
<br> Çıktısı "C:Inetpubwwwrootmages" 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;">
<%<br>
Dim Kopyala<br>
Set Kopyala=CreateObject ("Scripting.FileSystemObject")<br>
Kopyala.CopyFile "c:netpubwwwroot
spdosya.txt",
"c:netpubwwwrootnedir", true<br>
%></div>
<br>Kodları inceleyelim;<br>
Dim Kopyala<br>
Set Kopyala=CreateObject ("Scripting.FileSystemObject")<br>
<br>"Kopyala" isimli bir değişken yaratmıştık. Ve bu değişkeni
FileSystemObject nesnesinde kullanacağımızı belirlemiştik.<br>
Kopyala.CopyFile "c:netpubwwwroot
spdosya.txt", "c:netpubwwwrootnedir",
true<br>
<br>"Asp" dizini olarak yerini belirlediğimiz dosyayı kopyalıyoruz
ve "nedir" dizinine yapıştırıyoruz.<br>
<br>Nasıl yapacağımızı öğrendik fakat dikkat etmemiz gereken bir nokta
var örnekteki "nedir" 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><%<br>
FSO.CopyFolder "C:Windows","D:Deneme",True<br>
%><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;">
<%<br>
FSO.CopyFolder "C:Deneme*","D:Deneme"<br>
'veya<br>
FSO.CopyFolder "C:Deneme*","D:Deneme"<br>
%></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;">
<%<br>
FSO.CopyFolder "C:Windows","D:WinXP"<br>
%></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;">
<%<br>
FSO.CopyFolder "C:Windows","D:XYZWinXP"<br>
%></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 "FSO ile klasör işlemleri"
konusunda göreceğiniz gibi GetFolder ile klasörü bir nesneye atayıp "KlasorNesnesi.Copy
Hedef" ş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;">
<% <br>
FSO.CopyFolder "C:Windows" , "D:Deneme",
True(False)<br>
%></div>
<br>
ile <br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<% <br>
Set Klasor = FSO.GetFolder("C:Windows")<br>
Klasor.Copy "D:Deneme", True(False)<br>
%></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;">
<%<br>
FSO.CreateFolder "C:Deneme"<br>
%></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;">
<%<br>
FSO.CreateFolder "C:MetinAksu"<br>
%></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;">
<%<br>
FSO.CreateFolder "C:WindowsSystem32MetinAksu"<br>
%></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;">
<%<br>
Dim Dosya, Yazi<br>
Set Dosya=CreateObject ("Scripting.FileSystemObject")<br>
Set Yazi = Dosya.CreateTextFile ("c:netpubwwwroot
spDeneme.txt",
true)<br>
Yazi.WriteLine ("ASPnedir?com - deneme mesajı.")<br>
Yazi.WriteLine ("ASP ile text dosyasına mesaj yazdırıyoruz")<br>
Yazi.Close <br>
%></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;">
<%<br>
Dim Sil<br>
Set Sil=CreateObject ("Scripting.FileSystemObject")<br>
Sil.DeleteFile ("c:netpubwwwroot
spnedirdeneme.txt")<br>
%></div>
<br>Buradaki kodlar ile "aspnedir" 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;">
<%<br>
Dim Sil<br>
Set Sil=CreateObject ("Scripting.FileSystemObject")<br>
Sil.DeleteFolder ("c:netpubwwwroot
spnedirdeneme")<br>
%></div>
<br>Buradaki kodlar "aspnedir" dizindeki "deneme"
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("Sürücü Harfi")<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;">
<%<br>
Response.Write FSO.DriveExists("C")<br>
%></div>
<br>
Ekrana True yazdıracaktır.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.DriveExists("Z")<br>
%></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;">
<%<br>
FSO.DriveExists("C")<br>
FSO.DriveExists("C:")<br>
FSO.DriveExists("C:")<br>
FSO.DriveExists("C:/")<br>
%></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;">
<%<br>
Dim Kontrol<br>
Set Kontrol=Server.CreateObject("Scripting.FileSystemObject")<br>
If Kontrol.FileExists ("c:netpubwwwroot
spnedirdeneme.txt")
= true then<br>
Response.Write ("deneme.txt dosyası bulundu!") <br>
<br>Else<br>
Response.Write ("deneme.txt dosyası bulunamadı!")
<br>
End If<br>
Set Kontrol=Nothing <br>
%></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;">
<%<br>
Dim Kontrol<br>
Set Kontrol=Server.CreateObject("Scripting.FileSystemObject")<br>
If Kontrol.FolderExists ("c:netpubwwwroot
spnedirdeneme")
= true then<br>
Response.Write ("deneme klasörü bilgisayarda bulundu.")
<br>
<br>Else<br>
Response.Write ("deneme klasörü bilgisayarda bulunamadı!")<br>
End If<br>
<br>Set Kontrol=Nothing <br>
%></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("yol")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot")<br>
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot")<br>
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot/")<br>
Response.Write FSO.GetAbsolutePathName("C:/Inetpub/wwwroot/")<br>
%></div>
<br>
Hepsinin de çıktısı "C:Inetpubwwwroot" şeklinde olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetAbsolutePathName("C:Metin/Aksu/deneme.abcdefg")<br>
%></div>
<br>
Çıktısı "C:MetinAksudeneme.abcdefg" şeklinde olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetAbsolutePathName(Server.Mappath("/Deneme"))<br>
%></div>
<br>Çıktısı "C:InetpubwwwrootDeneme" 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("yol")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetBaseName("C:MetinAksudenemendex")<br>
Response.Write FSO.GetBaseName("C:MetinAksudenemendex")<br>
Response.Write FSO.GetBaseName("C:MetinAksudenemendex.asp")<br>
Response.Write FSO.GetBaseName("C:MetinAksudenemendex.asp")<br>
Response.Write FSO.GetBaseName("denemendex")<br>
Response.Write FSO.GetBaseName("denemendex.asp")<br>
Response.Write FSO.GetBaseName("index.asp")<br>
<br>Response.Write FSO.GetBaseName(Server.Mappath("index"))<br>
Response.Write FSO.GetBaseName(Server.Mappath("index.asp"))<br>
%></div>
<br>Hepsinin çıktısı "index" 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("Sürücü Harfi")<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("Yol")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetDriveName("z:")<br>
Response.Write FSO.GetDriveName("z:")<br>
Response.Write FSO.GetDriveName("z:/")<br>
Response.Write FSO.GetDriveName("z:fgjcvmnc")<br>
Response.Write FSO.GetDriveName("z:sfgjcvmnc")<br>
Response.Write FSO.GetDriveName("z:/sfghdf")<br>
%></div>
<br>
Hepsinin çıktısı "z:" olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetDriveName(Server.Mappath("/"))<br>
%></div>
<br>Çıktısı "C:" 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("string")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetExtensionName("C:Denemendex.asp")<br>
%></div>
<br>
Çıktısı "asp"<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetExtensionName("C:Denemendex.metin")<br>
%></div>
<br>
Çıktısı "metin"<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetExtensionName("ahmetmehmetüleyman.hilmi")<br>
%></div>
<br>
Çıktısı "hilmi"<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetExtensionName("ahmetmehmetüleyman.hilmi.fikri.zikri")<br>
%></div>
<br> Çıktısı "zikri"<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("Dosya Yolu")<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("İfade")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetFileName("C:Denemendex.asp")<br>
Response.Write FSO.GetFileName("C:Denemendex.asp")<br>
Response.Write FSO.GetFileName("sf4574356754ndex.asp")<br>
%></div>
<br>
Çıktıları "index.asp" olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetFileName("C:Denemendex")<br>
Response.Write FSO.GetFileName("C:Denemendex")<br>
Response.Write FSO.GetFileName("sf4574356754ndex")<br>
%></div>
<br>Çıktıları "index" 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("Dosya Yolu")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetFileVersion("C:Program FilesAheadNeroAudioPluginMgr.dll")<br>
%></div>
<br>
Benim sistemimde çıktısı "2.0.0.2" şeklinde.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetFileVersion("C:Program FilesAheadNeronero.exe")<br>
%></div>
<br>Çıktı "5.5.9.9" ş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("Klasör Yolu")<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("Yol")<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetParentFolderName("C:MetinAksundex.asp")<br>
Response.Write FSO.GetParentFolderName("C:MetinAksu/index.xghdmhgghf")<br>
%></div>
<br>
Her ikisinin de çıktısı "C:MetinAksu" olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetParentFolderName("C:MetinAksu")<br>
Response.Write FSO.GetParentFolderName("C:MetinAksu")<br>
Response.Write FSO.GetParentFolderName("C:MetinAksu/")<br>
%></div>
<br>
Üçünün de çıktısı "C:Metin" olur.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetParentFolderName("GiresunMetinAksu")<br>
Response.Write FSO.GetParentFolderName("GiresunMetinAksu")<br>
%></div>
<br>Çıktıları "GiresunMetin" 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 = "C:WINDOWS"<br>
1 = "C:WINDOWSystem32"<br>
2 = "C:WINDOWSTemp"<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Write FSO.GetSpecialFolder(1)<br>
%></div>
<br> Çıktısı "C:WINDOWSystem32" olur.<br>
<br>
GetTempName<br>
<br>Geçici bir dosya için .tmp uzantılı rastgele bir dosya adı üretir.
Dosya ismi başında "rad" 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;">
<%<br>
Response.Write FSO.GetTempName<br>
%></div>
<br>Çıktısı "A9932" kısmı her seferinde değişmek kaydıyla
"radA9932.tmp" 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;">
<%<br>
Dim Tasi<br>
Set Tasi=Server.CreateObject ("Scripting.FileSystemObject")<br>
Tasi.MoveFile "C:netpubwwwroot
spDeneme.txt","C:netpubwwwrootnedir"<br>
Set Tasi=Nothing<br>
%> </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;">
<%<br>
Dim Tasi<br>
Set Tasi=CreateObject ("Scripting.FileSystemObject")<br>
Tasi.MoveFolder "c:Inetpubwwwroot
sp", "c:Inetpubwwwrootnedir",
true<br>
%> </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. "c:Inetpubwwwrootnedir”
yada “c:Inetpubwwwrootnedir"ş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;">
<%<br>
Dim DosyaSistemi, Surucu, Suruculer<br>
Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")<br>
Set Suruculer = DosyaSistemi.Drives<br>
For Each Surucu In Suruculer<br>
%><br>
<b>Sürücü:</b> <%=Surucu.DriveLetter%><br><br>
<% If Surucu.IsReady = True Then%><br>
<b>Disk Adı:</b> <%=Surucu.VolumeName%><br><br>
<b>Boş alan:</b> <%=Surucu.FreeSpace%><br><br>
<% Else %><br>
<i>Sürücü hazır değil!</i><br><br>
<% End If<br>
Next %></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>
<SCRIPT LANGUAGE=VBScript RUNAT=Server> <br>
Sub Application_OnEnd() <br>
End Sub <br>
Session.Timeout=1 <br>
Sub Application_OnStart() <br>
Application("SuankiZiyaretciSayisi") = 0 <br>
Application("toplamziyaret") = 0 <br>
End Sub <br>
Sub Session_OnEnd() <br>
Application("SuankiZiyaretciSayisi") = Application("SimdikiZiyaretciSayisi")
-1 <br>
End Sub <br>
Sub Session_OnStart() <br>
Application("SuankiZiyaretciSayisi") = Application("SimdikiZiyarteciSayisi")
+1 <br>
Application("toplamziyaret") = Application("toplamziyaret")
+1 <br>
End Sub <br>
</SCRIPT> <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;">
<% <br>
Response.Write "<h4> Su Anda Sitemizde " &Application
("SuankiZiyaretciSayisi" ) & " Kisi Surf
Yapmaktadir... </h4>" <br>
Response.Write "<h4>Simdiye Kadar Sitemizi "
&Application("toplamziyaret" )&" Kisi
Ziyaret Etmistir...</h4>" <br>
%> </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;">
<% <br>
Set Tip = Server.CreateObject("MSWC.ContentRotator"
) <br>
Response.Write Tip.ChooseContent("icerik.txt" ) <br>
%></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 : -"sayin leydim bu yaptiginiz genel ahlaka
sigmaz ben size guvenmistim,<br>
guvenimin sonsuza kadar surecegini tahmin ediyordum... bana bunu<br>
yapamamliydiniz....", diye yarim saat nutuk ceker. Ama sonunda
dayanamaz<br>
ve yataktaki gence doner: <br>
- "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 "<p>" & Kayitlar ("email")
& "</p>"<br>
Kayitlar.Movenext<br>
Loop<br>
<br>Veritabanindan seçtigimiz kayitlarla olusturdugumuz kayitkümesinin
"email" adli alanindaki tüm kayitlara ait degerleri bu
dongü yapisiyla sayfaya yazdirabiliriz. <br>
<br>Burada koydugumuz koşul: "KayitKümesi sonunda olunmaması "
(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 "email"
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>
"Until" ile ornek yapalim.<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Do Until a>=10<br>
Response.Write a & "<br>"<br>
a = a +1<br>
Loop<br>
%></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;">
<%<br>
While sayac <= 5<br>
sayac = sayac + 1<br>
Response.Write a & "<br>"<br>
wend<br>
%></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;">
<%<br>
Dim Gunler<br>
Gunler = Array("Pazartesi", "Sali", "Çarsamba",
"Persembe", "Cuma", "Cumartesi",
"Pazar")<br>
For sayac = 0 to 6<br>
Response.Write Gunler(sayac)<br>
Response.Write "<BR>"<br>
Next<br>
%></div>
<br>Bir dizi tanimlayip, FOR..NEXT dongüsüyle, dizinin elemanlarini
yazdiriyoruz. Yazdirma isleminde sayaç olarak belirledginiz "sayac"
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;">
<%<br>
Dim Gunler<br>
Gunler = Array("Pazartesi", "Sali", "Çarsamba",
"Persembe", "Cuma", "Cumartesi",
"Pazar")<br>
For Each gun In Gunler<br>
Response.Write gun<br>
Response.Write "<BR>"<br>
Next<br>
%></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;">
<%<br>
For Each eleman in Request.form<br>
Response.Write eleman & " : "<br>
Response.Write Request.Form(eleman) & "<br>"<br>
Next<br>
%></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;">
<%<br>
If Request.Form("Parola") = "Ben Parolayim"
Then<br>
Response.Write "Evet.. Parolayi Bildiniz.. "<br>
Else<br>
Response.Write "Bilinemedi. Heyhât!"<br>
End If<br>
%></div>
<br>Örnekde formdan "parola" kimlikli elemanın degerinin
"Ben Parolayim" 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;">
<%<br>
select case hour(now)<br>
case 8,9,10,11,12<br>
Response.Write "Hos Geldiniz, sitemiz emrinizdedir."<br>
case 13<br>
Response.Write "Kapaliyiz. Ogle yemegine çiktik. 2 den
sonra gelin"<br>
case 14,15,16,17<br>
Response.Write "Hosgeldiniz, downloadlar sabah 9-10 arasi
yapilabilir"<br>
case else<br>
Response.Write "Sitemiz kapalidir. Gece mesaisi yoktur.
8 de gelin."<br>
end select<br>
%></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;">
<HTML><br>
<BODY><br>
Benim adım <%Server.Execute("Cagrilan.asp")%>
mi?<br>
</BODY><br>
</HTML></p>
<p><'--Cagrilan.asp><br>
<%<br>
response.write "İbrahim"<br>
%></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;">
<%<br>
Dim fso, MyFile<br>
<br> Set fso = CreateObject("Scripting.FileSystemObject")<br>
<br> Set MyFile = fso.CreateTextFile("c:testfile.txt",
True)<br>
<br> MyFile.WriteLine("Test Yazımız.")<br>
<br> MyFile.Close<br>
<br>
%></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;">
<%<br>
Dim DosyaSistemi, MetinDosyasi, Satir<br>
Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")<br>
Set MetinDosyasi = DosyaSistemi.OpenTextFile("c:yazi_deneme.txt",1,
0)<br>
Do<br>
Satir = MetinDosyasi.ReadLine<br>
%><br> <%=Satir%><br> <%<br>
Loop Until MetinDosyasi.AtEndOfStream<br>
MetinDosyasi.Close<br>
%></div>
<br>Set MetinDosyasi = DosyaSistemi.OpenTextFile("c:yazi_deneme.txt",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><a href> veya response.Redirect ile yönlendirdigimiz sayfalara
istediğimiz degişkenleri taşır.<br>
<br>
<A href= kullanımı :<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<A href="telno.asp?telefon_no=4121254"> Gönder </a></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 “&” işaretini
koyarız.<br>
<br>
Örnek: <br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<A href="telno.asp?telefon_no=4121254&ulke_no=90"> Gönder
</a></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;">
<%<br>
Dim telefon_nosu, ulke_nosu<br>
telefon_nosu = Request.QueryString("telefon_no")<br>
ulke_nosu = Request.QueryString("ulke_no")<br>
%><br>
<br><%<br>
Response.Write (ulke_nosu)<br>
Response.Write (telefon_nosu)<br>
%></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;">
<%<br>
Response.write("Ülke Kodu : <b>" & Request.querystring("ulke_no")
& "</b>")<br>
Response.write("Telefon Nosu : <b>" & Request.querystring("telefon_no")
& "</b>")<br>
%></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;">
<html><br>
<head><br> <title>Request Querystring
Uygulaması</title><br> </head><br> <form method="get"
action="deneme.asp"><br>
Adıniz : <input type="text" name="ad"
size="15"><br> &nbsp;<br> <input type="submit"
value="Gönder"><br> </form><br>
</html></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;">
<html><br>
<head><br> <title>Request Querystring
Uygulaması</title><br> </head><br> <%<br>
Response.write("Adınız : <b>" & Request.querystring("ad")
& "</b>")<br>
%><br>
</html></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><% %> 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;">
<% degisken="ASP Dersi"%><br>
<br><% <br>
Response.Write "Merhaba"<br>
Response.Write "<BR>"<br>
Response.Write "Active Server Page<br>"<br>
Response.Write "<hr>"<br>
response.write (degisken)<br>
%></div>
<br>Response.write ASP'de çok kullanılan bir komuttur <% Response.write
, yerine <%= yazarakta kullanabilirsiniz.<br>
<br>
Örnek : <br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<% degisken="ASP Dersi"%><br>
<br><%= "Merhaba"%><br>
<%="<BR>"%><br>
<%="Active Server Page<br>"%><br>
<%="<hr>"%><br>
<%= (degisken) %></div>
<h4>Response.Buffer</h4>
Buffer (Tampon): Default değeri "true" <br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<% Response.Buffer = True %></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;">
<% Response.Buffer = False %></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;">
<% <br>
Response.Write "Marhaba ASP"<br>
Response.End<br>
Response.Write "Hello ASP"<br>
%></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>
<% Response.Expires=dakika %><br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
Response.Expires = 60<br>
%></div>
<br>Bu değere "0" 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;">
<% Response.ExpiresAbsolute=#tarih# %></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;">
<% <br>
Response.Clear <br>
%></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;">
<%<br>
response.flush<br>
%></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 "yönlendirecek Sayfa Sdresi "<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;">
<% Response.Buffer = true %><br>
<br><HTML><br>
<BODY><br>
<%<br>
Response.Clear<br>
Response.Redirect "yonlendirme.asp" <br>
%><br>
</BODY></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;">
<%<br>
Response.cookies("kabuklarim")("adi") =
"Mucit"<br>
Response.cookies("kabuklarim")("sevdigi_icecek")
= "Kızılcahamam Maden Suyu ve Sodası"<br>
Response.cookies("kabuklarim")("medeni_durumu")
= "Bekar!"<br>
%></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;">
<%<br>
Adim = Request.cookies("kabuklarim")("adi")<br>
ne_icerim = Request.cookies("kabuklarim")("sevdigi_icecek")
<br>
medeni_halim = Request.cookies("kabuklarim")("medeni_durumu")<br>
Response.Write Adim & " / " & ne_icerim &
" / " & medeni_halim<br>
%></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;">
<%<br>
Response.Cookies("Cerezim")("adiniz")
= Request.Form("isim")<br>
%><br>
<%<br>
ad = Request.cookies("Cerezim")("adiniz")<br>
if ad <> "" then <br>
%><br>
<%= ad %><br>
<% else %><br>
<form method="POST" name="form" action="cerez_uygulama.asp"><br>
<br><br>
<table><br>
<tr><br>
<td width="50%">Adınız</td><br>
<td width="50%"><br>
<input type="text" name="isim" size="20"></td><br>
</tr><br>
<tr><br>
<td><br>
<br><input type="submit" value="Kaydet"
name="B1"></td><br>
</tr><br>
</table><br>
</form><br>
<% end if %></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><% Response.Cookies(“benim_cerez”).Expires=#31/12/2010# %><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;">
<%<br>
response.cookies(“benim_cerez”).Expires=#31/12/2000#<br>
%></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;">
<% OPTION EXPLICIT %><br>
<HTML><br>
<%<br>
Dim TesadufiSayi<br>
Randomize<br>
TesadufiSayi = Rnd<br>
%><br>
<%=TesadufiSayi%><br>
</HTML> </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;">
<% <br>
url=Request.QueryString("url" ) <br>
If url<>"" then Response.Redirect(url ) <br>
%> </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;">
<%<br>
Set ReklamNesnesi=Server.CreateObject("MSWC.Adrotator"
) <br>
ReklamNesnesi.TargetFrame="target='_blank'" ' yeni
pencere de actık <br>
banner=Reklamnesnesi.GetAdvertisement("banner.txt"
) Response.Write banner <br>
%></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;">
<% Server.ScriptTimeout = 145 %></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;">
<% Set Reklam = Server.CreateObject (“MSWS.AdRotator”)%><br>
<%= Reklam.GetAdvertisement(“/reklamlar/buyukbanka.txt”)%></div>
<br>Burada GetAdvertisement, Server’ın AdRotator bileşininin bir metodudur.
Server’ın CreateObject metodundan, veritabanına ulaşırken de yararlanacağız.<br>
<br><% Set BenimDB = Server.CreateObject("ADODB.Connection")
%><br>
<br>
ÖRNEK<br>
<br>
<div style="border:1px dashed black;background:#eeeeee none repeat scroll 0 50%;padding:10px;">
<%<br>
'-- Bu kod ile veritabanı nesnesi tanımlandı. İstenirse burada
serverde kayıtlı olan DLL dosyalar da tanımlanabilir. <br>
Set Nesne=Server.CreateObject("ADODB.Connection")<br>
%></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("Değisken1 < Değisken2")<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 "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: <br>
<br>Server.URLEncode("kelime 1 kelime2 kelime3")<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;">
<html><br>
<head><br> <title> MAIL GONDER
</title><br> </head><br> <body><br> <form
method=post action="mail.asp"><br>
Isim : <input type="text" name="isim"><br><br>
Mail : <input type="text" name="mail"><br><br>
Konu : <input type="text" name="konu"><br><br>
Mesaj : <textarea name="mesaj" rows=""
cols=""></textarea><br><br> <input
type="submit" value="yolla"><br> </form><br>
</body><br>
</html></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;">
<%<br>
' formdan içerik al<br>
isim = Request.form("isim")<br>
mail = Request.form("mail")<br>
konu = Request.form("konu")<br>
mesaj = Request.form("mesaj")<br>
<br>' mektup kime gidecek abisi<br>
<br>kime = "admin@site-adi.com"<br>
' bir CDO Newmail nesne ornegi yarat<br>
Set mektup = Server.CreateObject("CDONTS.NewMail")<br>
' çok açik, geleneksel atamalar<br>
mektup.From = isim & " <" & mail &
">"<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 <> 0 Then<br>
hata = err.description<br>
Response.Write "hata oldu: " & hata<br>
Else ' is temizse<br>
tebrik = "Mailiniz yolladı"<br>
Response.Write tebrik<br>
End If<br>
' açtigin nesneyi kapa...<br>
Set mektup = Nothing<br>
' bitti<br>
%></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;">
<%<br>
' formdan içerik al<br>
isim = Request.form("isim")<br>
mail = Request.form("mail")<br>
konu = Request.form("konu")<br>
mesaj = Request.form("mesaj")<br>
' mektup kime gidecek abisi...<br>
kime = "admin@site-adi.com"<br>
' bir JMail SMTPMail nesnesi...<br>
Set mektup = Server.CreateObject("JMail.SMTPMail")<br>
' SMTP sunucusu<br>
mektup.ServerAddress = "mail.Server.here"<br>
' gonderen<br>
mektup.Sender = isim & " <" & mail &
">"<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 <> 0 Then<br>
hata = err.description<br>
Response.Write "hata oldu: " & hata<br>
Else ' is temizse<br>
tebrik = "mailiniz yolladı"<br>
Response.Write tebrik<br>
End If<br>
Set mektup = Nothing<br>
%></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