ASP ASP nedir? Nasıl Çalışır? ASP, kullanıcı ile etkileşimli dinamik sayfalar yapmaya yarayan bir scripting dilidir. Server (sunucu) tabanlı çalışır. HTML ve JavaScript gibi bazı scripting dilleri kodları ziyaretçinin bilgisayarına gönderir ve kodlar burada derlenir. Bu bağlantı (client) taraflı scriptingin çalışma mantığıdır. ASP gibi sunucu (server) tabanlı scriptingler ise kodlarını serverda yorumlar ve gösterilmek üzere derlenmiş haldeki bilgileri client'e gönderir. ASP nin çalışma mantığı budur. Kodlar serverda derlenir kullanıcının bilgisayarına derlenmiş hali gönderilir. ASP ne işe yarar? HTML'den farkı nedir? ASP kullanıcı etkileşimli sayfalar yapmamızı sağlar. (Dinamik Sayfa) Yani sitemizi kullanıcının site üzerindeki işlemlerine otomatik cevap verecek şekilde programlamamızı sağlar. Ayrıca kolay içerik düzenleme, değiştirme ve ekleme işlemlerinde kolaylık sağlar. Bu özelliği ile sitenin güncel ve değişken olmasını sağlayabiliriz HTML ile farkı ise HTML client (bağlantı) taraflı çalışır.(statik Sayfa) Yani sayfa ziyaretçinin bilgisayarına gönderilir ve orada derlenir. ASP de ise server (sunucu) taraflı çalışır. Yani sayfa serverda derlenir ziyaretçinin bilgisayarına derlenmiş olarak gönderilir. ASP'nin Server (Sunucu) tabanlı olmasının bize sağladıkları nelerdir? ASP kodları serverda derlenir. Ziyaretçiye ise derlenmiş hali gönderilir. Ziyaretçi sayfada sağ tıklayıp açılan menüden Kaynağı Görüntüle komutunu verdiği zaman sayfamızda yazmış olduğumuz ASP kodlarını göremez. ASP ile veri tabanı işlemleri bu sistem sayesinde güvenli çalışır. Kısacası ASPnin server tabanlı olması bize gizlilik ve güvenlik sağlar... IIS KURULUMU: Denetim masası = Program EKLE/KALDIR = Windows Bileşenlerinden = Internet Information Servis yaparız. C:\Inepub\wwwroot klasörüne Asp dosyalarımız kaydedilir. BABY WEB SERVER I KURMAK: Bilgisayarı asp için uygun hale getirir. Setting sekmesinden dosya uzantısı(index.as), port nmarası(80) ve asp dosyalarının kaydedileceği klasör ayarlanır Web server started port 80 :Server çalışıyor Web server failed port 80 : Server çalışmıyor. DREAMWEAVER DA ASP SAYFALARINI TANIMLAMA: İndex.asp @LANGUAGE="VBSCRIPT" CODEPAGE="1252" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="content-type" content="text/html; charset=windows-1254"> <title>untitled Document</title> </head> <body> </html>
Değişkenler Piyasada kullanılan bütün programlama dillerinde değişkenler kullanılmadan önce tanımlanmalı ve boyutlandırılmalıdır. Fakat vbscript de bu dillerin aksine değişkenlerin tanımlanması ve boyutlandırılması zorunlu değildir. Vbscript tanımlanmamış değişkenleri hiç bir hata vermeden kabul eder. Fakat karmaşık programlarda sayfalar arası değişken problemleri yaşanabilir (daha önceden kullandığımız bir değişkene bir değer atamadan tekrar başka bir yerde kullanırsak eski değeri kalacağı için programda hatalar oluşacaktır). Bunu değişkenlerimizi kullanılmadan önce tanımlayarak engelleyebiliriz Bu alışkanlığı zorunluluk haline getirmek için vbscipt de komutu kullanılır. Degisken.asp dim ad,yas,tarih ad="zuhal" yas=33 tarih=date response.write(ad) & "<br>" response.write(yas) & response.write(tarih) dim ad,yas,tarih ad="zuhal" yas=33 tarih=date() response.write(ad & "<br>" & yas & tarih) Sabitler Bir kere değer atandıktan sonra bir daha değiştirilemez (sabit değer bütün program boyunca (hatta isterseniz bütün site boyunca) değişmeden kalır. (Const) const kdv=1.18,pi=3.14,ad="zuhal" response.write(pi & "<br>" & ad & "<br>" & kdv) 'ad="meral" HATA!!! Sabite yeni bir değer atanmaya çalışılıyor Diziler: Vbscript programları içerisinde bir değişkene birden çok değer verilebilmektedir. Örnek vermek gerekirse 7 kişilik bir sınıf içersindeki öğrencilerin isimlerini tek bir değişkende tutabiliriz. dizi.asp dim gunler,i gunler=array("pazaretesi","salı","çarşamba","peerşembe","cuma","cumartesi","pazar") for i=0 to 6 response.write("haftanın_" & i+1 & ". günü=" & gunler(i) & "<br>") next dizi2.asp dim sayi(7),i for i=0 to 6 sayi(i)=i*2 response.write(sayi(i) & "<br>") next
Operatörler Aritmetik Karşılaştırma Lojik Açıklama Sembol Açıklama Sembol Açıklama Sembol Üst Alma ^ Eşitlik = Lojik Zıtlık Not Çıkarma - Eşitsizlik <> Lojik ve And Çarpma * Küçüktür < Lojik veya Or Bölme / Büyüktür > Lojik özel veya Integer Bölme \ Küçük Eşittir <= Lojik eşdeğer Eqv Modüler Mod Büyük Eşittir >= Lojik içerme Imp Toplama + Obje Eşdeğeri Metinsel Birleştirme & Is Xor ustamla.asp dim x,y,sonuc x=25 y=7 sonuc=x^y = sonuc dortislem.asp Dim a, b, c, d,sonuc a = 1:b = 7 : c = 11 : d = 4 Sonuc = ((a+b)/( b*c))*d Response.Write(sonuc) mod.asp Dim a, b, Sonuc a = 25 b = 7 Sonuc = a Mod b Response.Write(sonuc) RND FONKSİYONU: 0-1 arasında rastgele sayı üretir. Sistemin program her çalıştığında farklı bir sayı üretmesini istersek rnd fonksiyonundan önce Randomize ifadesi yazılır. Not: (rnd*100)+1: 1-100 arasında rastgele sayı üretir. MANTIK OPERATÖRLERİ 1.If Then Else 2 koşullu durumlarda: if şart then [şart doğru ise yapılacak işlemler] else [şart yanlış ise yapılacak işlemler] end if
2 den fazla koşul olduğu zaman: if şart1 then [şart1 doğru ise yapılacak işlemler] elseif şart2 then [şart2 doğru ise yapılacak işlemler].. else [şartlar yanlış ise yapılacak işlemler] end if 2. Select case VbScript in bir diğer duruma bakarak karar verme ifadesi, select case (durum seç) yapısıdır. durum seç Durum1 : yapılacak işler Durum2 : yapılacak işler Durum3 : yapılacak işler Seçmeyi bitir <body> dim a,gunler gunler=array("pazartesi","salı","çarşamba","perşembe","cuma","cumartesi","pazar") randomize a=int((rnd)*7)+1 Response.Write("<h2>" & a & "</H2>" & "<p>") I.YOL: DİZİNİN İNDİSİNİ KULLANARAK YAZDIRMA: = gunler(a-1) <P>II.YOL: SELECT CASE KULLANMA</P> select case a case 1 response.write("bugün PAZARTESİ") case 2 Response.Write("bugün SALI") case 3 Response.Write("bugün ÇARŞAMBA") case 4 Response.Write("bugün PERŞEMBE") case 5 Response.Write("bugün CUMA") case 6 Response.Write("bugün CUMARTESİ") case 7 Response.Write("bugün PAZAR") END SELECT
DÖNGÜLER 1.For-Next döngüsü for sayac = baslangic to son step adim yapılacak işler Next randomize dim a,sayi,sonuc a=(rnd*100)+1 sayi=int(a) sonuc=sayi mod 2 if sonuc=0 then Response.Write("<h3>" & "bilgisayarın ürettiği sayı=" & sayi & "<br>" & "ÇİFT SAYI" ) ELSE Response.Write("<h3>" & "bilgisayarın ürettiği sayı=" & sayi & "<br>" & & "TEK SAYI" ) END if dim dizi,i dizi=array("a","b","c","d","e","f","1","2") dim sayi for i=1 to 10 randomize sayi=int(rnd*8) Response.Write(dizi(sayi)) next icicefor.asp dim i,j for i=1 to 3 for j=1 to 5 Response.Write(j & "-zuhal " ) next Response.Write("<p>") next <body> <table border="1"> dim i,j for j=1 to 6 Response.Write("<tr>") for i=1 to 6 Response.Write("<td align=center>" & i & "</td>") next response.write("</tr>") next
2.While-wend döngüsü Döngü belli bir kural gerçekleştiğinde işletilir.(..iken) dim gunler gunler=array("pazartesi","salı","çarşamba","perşembe","cuma","cumartesi","pazar") dim sayac sayac=3 while sayac<=5 Response.Write(gunler(sayac) & "<br>") sayac=sayac+1 wend dim i i=3 while i<=12 Response.Write(i & "<br>") i=i+3 wend 3. Do While/Loop dim i i=13 do while i<=12 'if i<=12 ile aynıdır. Response.Write(i & "<br>") loop Response.Write("en son=" & i) 4. Do/Loop While dim i i=13 do Response.Write(i & "<br>") loop while i<=12 Response.Write("en son=" & i)
5. Do/Loop Until dim i i=10 do Response.Write(i & "<br>") loop until i=10 Response.Write("en son=" & i) 6. Do Until /Loop dim i i=2 do until i=10 Response.Write(i & "<br>") i=i+1 loop Response.Write("en son=" & i) FOR EACH DÖNGÜSÜ Dizi elemanlarını alır. dim sinif, ogrenci sinif=array("mert","cengizhan","tahsin","merve","kübra","mine","orkun","anıl") Response.Write("for each başlıyor" & "<br>") for each ogrenci in sinif Response.Write("sinif dizisinin elemanı=" & ogrenci & "'dir" & "<br>") next EXIT FOR dim sinif, i sinif=array("mert","cengizhan","tahsin","merve","kübra","mine","orkun","anıl") for i=0 to 7 Response.Write(sinif(i) & "<br>") if sinif(i)="mine" then exit for next Response.Write("for next bitti")
1.Date: O güne ait tarihi verir. Dim Degisken Degisken = Date() 2. Time: o ana ait zamanı verir. Dim Degisken Degisken = Time() TARİH FONKSİYONLARI o günkü tarih değerini verir. o an ki zaman değerini verir. 3.Now :O an ki tarih ve zamanı birlikte verir. Dim Degisken Degisken = Now() o an ki tarih ve zaman değerini verir. 4.Day: Bu fonksiyon içerisine gönderilen tarihe ait gün değerini sayısal olarak verir. Dim Degisken Degisken = Day( 25.07.1997 ) 25 değerini verir. 5. Month: Bu fonksiyon içerisine gönderilen tarihe ait ay değerini sayısal olarak verir. Dim Degisken Degisken = Month( 25.07.1997 ) 7 değerini verir. 6. Year: Bu fonksiyon içerisine gönderilen tarihe ait yıl değerini sayısal olarak verir Dim Degisken Degisken = Year( 25.07.1997 ) 1997 değerini verir. 7.WeekDay Bu fonksiyon içerisine gönderilen tarihin haftanın kaçıncı günü olduğunun değerini sayısal olarak verir. Haftanın 1. günü Pazar kabul edilir. Dim Degisken Degisken = WeekDay( 25.07.1997 ) 3 değerini verir. 8. WeekDayName Bu fonksiyon içerisine gönderilen tarihin haftanın kaçıncı günü olduğunun değerini gün ismi olarak verir. Dim Degisken Degisken = WeekDayName( 25.07.1997 ) Salı değerini verir.
9.MonthName : Bu fonksiyon içerisine gönderilen sayısal değere karşılık gelen ay adını verir. Dim Degisken Degisken = MonthName(11) Kasım değerini verir. METİN İŞLEMLERİ(STRİNG FONKSİYONLAR) *Lcase *Mid *Trim *Ucase *Len *Space *Left *Ltrim *String *Right *Rtrim *Cint 1. Lcase: İçerisine gönderilen karakterleri veya karakter setlerini tamamen küçük harfe dönüştürülmüş olarak geri verir. 2. Ucase: İçerisine gönderilen karakterleri veya karakter setlerini tamamen büyük harfe dönüştürülmüş olarak geri verir. 3. Left : Verilen bir metinsel değişkenin solundan belirtilen kadar karakteri alması için kullanılır. Soldaki birinci harf her zaman 1. harf olacaktır. Dim Degisken, SolMetin Degisken = VBScript SolMetin = Left(Degisken, 3) VBS değeri döner. 4. Right: Verilen bir metinsel değişkenin sağından belirtilen kadar karakteri alması için kullanılır 5. Mid: Stringin başlangıç noktasından belirtilen kadarını alır. Dim Degisken, Metin Degisken = Erhan Arı Metin = Mid(Degisken, 7, 3) Arı değeri döner. 6. Len: Bir stringin uzunluğu 7. Ltrim: Stringin solundaki boşlukları siler. 8. Rtrim: Stringin sağındaki boşlukları siler. 9. Trim: Stringin sağındaki ve solundaki boşlukları siler. 10. Space: Verilen sayı kadar boşluklu bir string oluşturur. Dim a, b a = 11AA b= sınıfı Response.write(a & space(1) & b) 11. String: Fonksiyon içerisine gönderilen sayı değeri kadar karakteri yan yana koyar fakat fonksiyon içerisine gönderilen karakterin sadece ilk harfini alır. Dim Degisken Degisken = String(5, * ) Degisken = String(5, 42) ***** değeri döner. ***** değeri döner. Degisken = String(10, ABC ) AAAAAAAAAA değeri döner. 12. Cint: Fonksiyona gönderilen değişkeni sayısal veri tipi bir değişkene dönüştürür.
Uygulama1:Değişken olarak tanımlanan bir string ifadenin uzunluğu kadar, string ifadeyi aşağıdaki şekilde yazdıran kod bloğunu yazın. Ad= 11AA Ad= ZUHAL 1 Z 11 ZU 11A ZUH 11AA ZUHA ZUHAL Uygulama2: Tc kimlik numarasının kontrolünü yapan program. Cdbl: Bu fonksiyon içerisine gönderilen değişkenin uzun ve noktalı sayıya çevirmek için kullanılır. Isnumeric: Bu fonksiyon içerisine gönderilen değişkenin sayısal bir değişken olup olmadığını sınamak için kullanılır. Replace: Verilen string içerisinde istenilen bölümleri bulup başka bir string ile değiştirmeye yarar. Yazım Deger = Replace(Metin, bulunacakmetin, değiştirilecekmetin) Fonksiyon içerisine gönderilen metin içerisinde bulunacak metini arayarak yerine değiştirilecekmetin i değiştirir. Örnekler Dim Degisken Degisken = Replace( XXpXXPXXp, p, Y ) XXYXXPXXY değeri döner. FORM NESNELERİ Request.Form ile formdan bilgi alınır. 1. TEXTFIELD: Örnek1: Html sayfası hazırlama: <body> <form name="form1" method="post" action="form.asp"> <input type="text" name="textfield"> <p> <input type="text" name="textfield2"> </p> <p> <input type="submit" name="submit" value="gönder"> </p> </form> Çalıştırılacak asp dosyası Form.asp: <body> dim a,b
a=request.form("textfield") b=request.form("textfield2") Response.Write(c) Örnek2: index.html <form name="form1" method="post" action="form.asp"> <p> Tc Kimlik No: <input name="tc" type="text" id="tc" maxlength="11"> <p> Adınız: <input name="ad" type="text" id="soyyad"> </p> <input type="submit" name="submit" value="gönder"> </form> Form.asp <body> dim tc,ad tc=request.form("tc") : ad=request.form("ad") if tc="" then Response.Write("Tc alanı boş bırakılamaz") Response.end elseif len(tc)<> 11 then Response.Write("Tc Kimlik numarası 11 haneden az olamaz") else Response.Write("sitemize başarıyla giriş yaptınız...") end if Kullanıcıya satır,sütun ve mesaj sorarak mesajı tablo içerisinde yazdıran program. Formdan girilen 2 not bilgisinin toplamını bulan program. Formda uzun sayı girişine izin verilecek(cdbl) ve sayı kontrolü yapılacaktır.(isnumeric) 2. RADIO BUTTON Name lei aynı value değerleri farklıdır. Veri formdan alındığında value değerleri gelir. Örnek1. index.html body> <form name="form1" method="post" action="form.asp"> <p>tuttuğunuz Takım: <input name="takim" type="radio" value="galatasaray"> GS <input name="takim" type="radio" value="fenerbahçe"> FB <input name="takim" type="radio" value="beşiktaş"> BJK </p> <p>sevdiğiniz Renk:
<input name="renk" type="radio" value="kirmizi"> KIRMIZI <input name="renk" type="radio" value="sari"> SARI <input name="renk" type="radio" value="mavi"> MAVİ </p> <p> <input type="submit" name="submit" value="gönder"> </p> </form> Form.asp <body> dim a,b a=request.form("takim") b=request.form("renk") Response.Write("Favori takımınız=" & a & "<p>") Response.Write("Renginiz=" & b) 3. CHECKBOX *Value değeri silinir. *Seçiliyse asp kodunda on değeri gelir. index.html <body> <form name="form1" method="post" action="form.asp"> <input type="checkbox" name="checkbox" > <input type="checkbox" name="checkbox2" > <input type="checkbox" name="checkbox3" > <input type="checkbox" name="checkbox4" > <input type="checkbox" name="checkbox5" > Form.asp: if request.form("checkbox")="on" then Response.Write("TİYATRO") end if if request.form("checkbox2")="on" then Response.Write("SİNEMA") <input type="submit" name="submit" value="submit"> </form>
end if if request.form("checkbox3")="on" then Response.Write("KİTAP") end if if request.form("checkbox4")="on" then Response.Write("SEYEHAT") end if 4. TEXTAREA: <textarea name= adres id= adres ></textrea> Request.form ile alınır 5. LIST/MENU.html: <select name= sinif id= sinif > <option> 11AA </option> <option>11ab </option> <option>11ac</option> </select>.asp:.. Dim a a=request.form( sinif ) seçeneği döner. seçili olan option Örnek uygulama: Form dan alınan bilgileri ekranda görüntüleyen ve aşağıdaki işlemleri yapan program kodlarını yazın. Adınız bölümü boş geçilemez. Adınız alanı sayı içeremez Girilen isim formun sonunda tersten yazdırılacak. ZUHAL LAHUZ İsim bilgisi aşağıdaki şekillerde görüntülenecek. Z U ZUH ZUHA ZUHAL ZUHAL ZUHA
ZUH ZU Z Form rengi seçilen renge göre değişecek. <body> AYNI FORMA GÖNDERME if request.form("submit")="" then <form name="form1" method="post" action="form.asp"> Adınız: <input name="ad" type="text" id="ad"> <input type="submit" name="submit" value="gönder"> </form> else response.write(request.form("ad")) end if Asp kodları else bölümüne yazılır. name:border name:genislik if request.form("submit")="" then Bu bölümde for nesneleri yer alacak. else dim sayi,genislik sayi=request.form("border") : genislik=request.form("genislik") <table border="=sayi" width="=genislik" height="= genislik"> a=request.form("textfield") : b=request.form("textfield2") : c=request.form("textfield3") for i=1 to a response.write("<tr>") for j=1 to b response.write("<td align=center>" & c & "</td>") next response.write("</tr>") next end if
Soru: text kutusuna beraber yazılan ad soyad bilgisini ekrana Adınız:. Soyadınız:.. Şeklinde yazdıran program. AHREF İLE VERİ GÖNDERME Form.asp if request.form("submit")="" then Form nesneleri </form> else dim a a=request.form("textfield") for i=1 to a toplam=toplam+i next Response.Write("sonucu görmek için <a href=form2.asp?sonuc=" & toplam & ">tıklayın</a>" ) end if görüntülenecek sonuç request ile alınacak veri verinin gideceği asp dosyası form2.asp dim a a=request("sonuc") form1.asp den geliyor. Response.Write("sonucunuz=" & a) index.html Sol.html default.asp Sol.html <body> <p><a href="default.asp?sayfa=ana" target="mainframe">anasayfa</a></p> <p><a href="default.asp?sayfa=p1" target="mainframe">proje1</a></p> <p><a href="default.asp?sayfa=p2" target="mainframe">proje2</a></p> <p><a href="default.asp?sayfa=p3" target="mainframe">proje3</a> </p> index.html <frameset cols="80,*" frameborder="yes" border="1" framespacing="0"> <frame src="sol.html" name="leftframe" scrolling="no" noresize title="leftframe"> <frame src="default.asp" name="mainframe" title="mainframe"> </frameset>
default.asp dim a a=request("sayfa") if a="ana" then Response.Write("anasayfa") elseif a="p1" then Response.Write("proje1") elseif a="p2" then Response.Write("proje2") elseif a="p3" then Response.Write("proje3") else Response.Write("anasayfaaa") end if örnek: Sonucu görüntülemek için tıklayın Sonucu form2.asp de görüntüleyin Sol.html ana.html index.html Soru1 Soru2 Soru3 index.html <frameset cols="80,*" frameborder="yes" border="1" framespacing="0"> <frame src="sol.html" name="leftframe" scrolling="no" noresize title="leftframe"> <frame src="ana.html" name="mainframe" title="mainframe"> </frameset> Sol.html <p><a href="ana.html" target="mainframe">anasayfa</a></p> <p><a href="soru1.asp" target="mainframe">soru1</a></p> <p><a href="soru2.asp" target="mainframe">soru2</a></p> <p><a href="soru3.asp" target="mainframe">soru3</a></p>
ana.html <body> <p>ad-soyad...</p> <p>sınıf</p> <p>numara</p> (1 Nisan şakası yaptığınız örnek uygulama ) birden fazla değeri ahref ile 2. bir asp dosyasına gönderme Sonucu görüntülemek için tıklayın Form.asp if request.form("submit")="" then Form nesneleri yer alacak. else dim a,b,t,i a=cint(request.form("textfield")) b=cint(request.form("textfield2")) gelen=request.form("select") select case gelen case "topla" t=a+b case "çıkar" t=a-b case "çarp" t=a*b case "böl" t=a/b end select Response.Write("Sonucu görmek için <a href=form2.asp?no1="& a &"&no2="&b& "&eder=" & gelen & "&sonuc=" & t & "> tıklayın </a>") end if </html> Form2.asp <body> dim a,b,c,d,isaret a=request("no1") b=request("no2") c=request("eder") d=request("sonuc") if c="topla" then isaret="+" elseif c="çıkar" then isaret="-"
elseif c="çarp" then isaret="*" else isaret="/" end if Response.Write(a & isaret& b & "=" & d) </html> DATEDIFF KOMUTU Datediff: İki tarih arasındaki zamanı istenilen türden hesaplar. <Degisken> = Datediff(<aralık>, <tarih1>,<tarih2>) Aralık türleri: yyyy yıl q mevsim m ay d gün w hafta h saat n dakika s saniye Not: Datediff kullanımından önce response.write(now()) ile server saat ve tarih formatını kontrol edin. Ör: tarih1 = 23.09.1981 08:30:54 tarih2 = Now() response.write ( datediff ( yyyy, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( q, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( m, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( d, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( w, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( h, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( n, tarih1, tarih2 ) & yıl <br> ) response.write ( datediff ( s, tarih1, tarih2 ) & yıl <br> ) Örn: İdeal Kilo Hesabı:
if request.form("submit")="" then.. else dim ad,soyad,boy,yil,kilo,cins,yas,bgn ad=request.form("textfield") response.write("<b><i>adiniz:</b></i>" & ad & "<br>") soyad=request.form("textfield1") response.write("<b><i>soyadiniz:</b></i>" & soyad & "<br>") boy=cint(request.form("textfield2")) response.write("<b><i>boyunuz:</b></i>" & boy & "<br>") yil=request.form("textfield3") kilo=cint(request.form("textfield4")) cins=request.form("select") bgn=now() yas=datediff("yyyy",yil,bgn) response.write("<b><i>yasiniz:</b></i>" & yas & "<br>") response.write("<b><i>kilonuz:</b></i>" & kilo & "<br>") ideal=round((boy-100)+(yas/10)*cins) response.write("<b><i>ideal Kilonuz:</b></i>" & ideal & "<br>") if kilo<ideal then response.write("<b><i>not:</b></i>" & "...Çok Zayifsin ") elseif kilo>ideal then response.write("çok Sismansin.") else response.write("tebrikler Ideal Kilodasiniz...") end if end if DOSYA SİSTEMİ NESNESİ FSO-----File System Object:Asp programının, Web sunucusunun sabit disk sisteminde, sürücüleri, klasörleri ve dosyaları yönetmekte kullanacağımız temel araçtır. dim obje,textdosya set obje=server.createobject("scripting.filesystemobject") set textdosya=obje.createtextfile("c:\test.txt") set textdosya =nothing set obje =nothing Soru: Hangi tür dosyalar oluşturulabilir? Açıklayın SERVER.MAPPATH:Dosyanın yerini belirtir. Örn: default.asp dim a a=server.mappath("default.asp") b=server.mappath("\") response.write(a & "<br />"){Dosyanın yerini dosya adıyla gösterir.} response.write(b & "<br />") {Dosyanın sadece yerini verir.}
BULUNULAN KLASÖRE (Dosyamızın çalıştığı yere) DOSYA OLUŞTURMA: dim a,dosya a=server.mappath("\") dosya=a & "\text.txt" dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(dosya) set f=nothing set fs=nothing CREATETEXTFILE parametreleri: Createtextfile(dosyaadı,overwrite,Unicode) 1. Dosyaadı: Yaratılacak dosya adı ve parametreleri 2. Overwrite: Opsiyoneldir. Varsayılan ayarı true True:Eğer aynı isimli dosya varsa üstüne oluşturur. False: Eski dosyayı bozmaz, hata verir. 3. Unicode: opsiyoneldir. Varsayılan ayarı false. True:Unicode False:Ascii OLUŞTURULAN DOSYAYA YAZDIRMA: Write Writeline Örn: dim yol,dosya yol=server.mappath("\") dosya=yol & "\test.txt" dim obje,f set obje=server.createobject("scripting.filesystemobject") set f=obje.createtextfile(dosya,true) f.write("merhaba") f.write("dünyali!") MerhabaDünyalı! f.writeblanklines(2) f.writeline("nasilsin?") f.writeline("iyi misin?") Nasılsın? İyi misin? - (imlec buraya iner) f.close set f=nothing set fs=nothing Kullanıcı adı ve şifrenin girildiği bir formdan verilerin alınarak dosyanın çalıştığı yerde oluşturulacak gonder.txt dosyasına verileri yazdıran program.
Aşağıda yer alan form bilgilerini kullanıcı adıyla açılacak txt dosyasına yazdırma if request.form("submit")="" then Form öğeleri. else dim ad,soyad,okul,sinif,no,mesaj,takim ad=request.form("textfield") soyad=request.form("textfield2") okul=request.form("textfield3") sinif=request.form("select") no=request.form("textfield4") mesaj=request.form("textarea") takim=request.form("radiobutton") dim yer,dosyaadi yer=server.mappath("\") dosyaadi= yer & "\" & ad & ".txt" dim dn,d set dn=server.createobject("scripting.filesystemobject") set d=dn.createtextfile(dosyaadi) d.write("ad:"& ad ) d.write("soyad:"& soyad) d.write("okul:"& okul) d.write("sinif:"& sinif) d.write("no:"& no ) d.write("hobileriniz: ") if request.form("kitap")="on" then d.write("kitap")
if request.form("araba")="on" then d.write("araba") if request.form("yuzmek")="on" then d.write("yüzmek") if request.form("resim")="on" then d.write("resim") if request.form("mzk")="on" then d.write("müzik") if request.form("alisveris")="on" then d.write("alisveris") if request.form("pc")="on" then d.write("pc") if request.form("psp")="on" then d.write("psp") if request.form("sinema")="on" then d.write("sinema") if request.form("tiyatro")="on" then d.write("tiyatro") d.write("takiminiz: " & takim) d.write("mesajiniz:" & mesaj) d.close set d=nothing set dn=nothing response.write("oldu..") end if DOSYA OKUMAK İÇİN AÇMA: Opentextfile(dosyaadı,mode,create,format) Mode:opsiyoneldir. 1----Okuma modu: Bu moda yazı yazılmaz. 2----Yazma modu: Bu moda açılınca dosya boşaltılır,baştan yazılır. 8----append modu: Ekleme modu. Dosya sonuna ekler. Create:Opsiyoneldir. Varsayılanı false. True: dosya yoksa önce oluştur. False: dosya yoksa hata verir. Format: opsiyoneldir. Varsayılan---0 0:Ascii -1:Unicode -2:Sistem default dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.opentextfile(server.mappath("test.txt"),8,true) Ekleme modu f.writeline("yeni eklenndi") f.close set f=nothing set fs=nothing Dosya yoksa önce oluştur
AÇILAN DOSYADAN OKUMA: *Read(karakter sayısı)----okunacak karakter sayısı dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & "\oku.txt") f.write("asp ÇALISMAM!") F.CLOSE dim fr,x set fr=fs.opentextfile(server.mappath("oku.txt"),1,false) x=fr.read(3) fr.close Response.Write("ilk 3 karakter=" & x) 1:sadece okuma modu False:dosya yoksa hata verir. *READALL---Dosyadaki tüm yazıları okur. dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & "\oku.txt") f.write("asp ÇALISMAM!") F.CLOSE Output: ASP ÇALISMAM! dim fr,x set fr=fs.opentextfile(server.mappath("oku.txt"),1,false) x=fr.readall fr.close Response.Write("mesaj=" & x) READLINE: Dosyadaki ilk satırı okur. dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & "\oku.txt") f.writeline("1.satir") f.writeline("2.satir!") f.writeline("3.satir") F.CLOSE dim fr,x set fr=fs.opentextfile(server.mappath("oku.txt"),1,false) x=fr.readline fr.close Response.Write("dosyadaki ilk satir=" & x)
SKIP(sayı): belirlenen sayı kadar dosyadan karakteri atlar. dim x,fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.opentextfile(server.mappath("oku.txt"),1,false) f.skip(8) x=f.readall f.close Response.Write("sonuç=" & x) Set f=nothing Set fs=nothing SKIPLINE: Dosyadaki ilk satırı atlar. dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile((server.mappath("\") & "\skipline.txt")) f.writeline("1.satir") f.writeline("2.satir") f.writeline("3.satir") f.writeline("4.satir") f.close set fr=fs.opentextfile(server.mappath("skipline.txt"),1,false) fr.skipline x=fr.readall Response.Write(x) fr.close set fs=nothing set f=nothing set fr=nothing Not:read,readline,skip,skipline okuma modunda açılan dosyalarla çalışır. dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.opentextfile(server.mappath("\") & "\text.txt", 1, false) Response.Write("f.read(5)--> "& f.read(5)& "<br>") Response.Write("f.readline--> "&f.readline & "<br>") Response.Write("f.readall--> "&f.readall & "<br>") f.close set f=fs.opentextfile(server.mappath("\") & "\text.txt", 1, false) Response.Write("f.readline--> "&f.readline & "<br>") Response.Write("f.readall--> "&f.readall & "<br>")
f.close set f=nothing set fs=nothing Text.txt: Zuhal---tuğba bilgisayar öğretmenleri ahmet emre mert deneme 1234 AtEndOfLine:Satır sonu kontrolü --satır sonunda true değerini alır. dim fs,f,x set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & ("\test.txt")) f.writeline("merhaba!") f.write("nasilsin") f.close set f=fs.opentextfile(server.mappath("test.txt"),1,false) do while f.atendofline<>true x=f.read(1) Satır sonuna gelene kadar 1 karakter oku Response.Write(x & "<br>") loop f.close Response.Write("son karakter= " & x) Ekran çıktısı: son karakter=! AtEndOfStream:Dosya sonu kontrolü. dim fs,f,x set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & ("\test.txt")) f.writeline("merhaba!") f.write("nasilsin?") f.close set f=fs.opentextfile(server.mappath("test.txt"),1,false) do while f.atendofstream<>true x=f.read(1) Response.Write(x & "<br>") loop f.close Response.Write("son karakter " & x) Ekran çıktısı: son karakter=?
Column: Dosyada kaçıncı sütunda bulunulduğunu gösterir. dim fs,f,x set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & ("\test.txt")) f.writeline("merhaba!") f.write("nasilsin?") f.close set f=fs.opentextfile(server.mappath("test.txt"),1,false) do while f.atendofstream<>true x=f.read(1) y=f.column-1 Response.Write(x & " pozisyonu=" & y & "<br>") loop f.close Response.Write("son karakter " & x & "<br>") Response.Write("bulundugu sütun numarasi=" & y) Line: Dosyada kaçıncı satırda bulunulduğunu gösterir. dim fs,f,x set fs=server.createobject("scripting.filesystemobject") set f=fs.createtextfile(server.mappath("\") & ("\test.txt")) f.writeline("merhaba!") f.writeline("nasilsin?") f.writeline("güle güle!") f.close set f=fs.opentextfile(server.mappath("test.txt"),1,false) do while f.atendofstream=false Response.Write("satır " & f.line & ": "& f.readline) Response.Write("<br>") loop f.close Ekran çıktısı: satır 1:merhaba! satır 2:nasılsın? satır 3:güle güle!