Murat TATAR God saves lost souls , I save lost passwords

6Nis/110

Request.Querystring

Request.Querystring
Request.Querystring
Bu deyim bir sayfadan başka bir sayfaya veya aynı sayfaya değişken yada değişkenlerin taşınmasını sağlar.

veya response.Redirect ile yönlendirdigimiz sayfalara istediğimiz degişkenleri taşır.

Gönder

Bu örnekte link verdigimi telno.asp adresini yazdıktan sonra “?” ile sayfaya taşınacak “telefon_no” kimligine bir deger vererek telno.asp adresine yolluyoruz.

Birden fazla değer göndermek istiyorsak aralarına “&” işaretini koyarız.

Örnek:

Gönder

Telno.asp sayfasında bu gelen verilerileri alabilmesi için aşagıdaki kodlar tanımlanmalıdır.

<% Dim telefon_nosu, ulke_nosu telefon_nosu = Request.QueryString("telefon_no") ulke_nosu = Request.QueryString("ulke_no") %>

<% Response.Write (ulke_nosu) Response.Write (telefon_nosu) %>

Aşagıdaki şekilde de sayfaya bilgiler yazılabilir

<% Response.write("Ülke Kodu : " & Request.querystring("ulke_no") & "")
Response.write("Telefon Nosu : " & Request.querystring("telefon_no") & "")
%>

Request.querystring de Form Kullanımı



Request Querystring Uygulaması

Adıniz :
 

Deneme.asp sayfasına form elemanı textbox value degeri aktarılır.

Ş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.



Request Querystring Uygulaması

<% Response.write("Adınız : " & Request.querystring("ad") & "")
%>

6Nis/110

TextStream Nesnesi

TextStream Nesnesi
Metin Akımı
Web Server ve dolayısıyla ASP açısından sabit diske bir metin yazarken, veya sabit diskten bir metin okurken, bir metin akışı nesnesi oluşur. Bu nesnenin özellikleri ve metodlarını kullanarak, 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.

Metin dosyası okumak ve yazmak disk sistemini ilgilendiren bir eylem olduğu için yine Scripting nesnelerinden FileSystemObject nesnesinden yararlanacağız.
Metin Dosyası Oluşturma
(CreateTextFile)
ASP sayfaları sayesinde sunucu üzerinde bir text dosyası oluşturulur yada bu text dosyasına ek yapabiliriz.

Bu sayfa açıldığı anda sunucu üzerinde bir text dosyası oluşturulacak ve içerisine yazı yazılacaktır.

<% Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile("c:testfile.txt", True) MyFile.WriteLine("Test Yazımız.") MyFile.Close %>

CreateTextFile (metin dosyası oluştur) bu metoda argüman olarak yeni metin dosyasının yolunu ve adını veriyorduk

WriteLine (satır yaz: bir String’i sonuna yeni satır karakteri koyarak dosyaya yazar)

Close (kapat: açılan metin dosyasını kapatır).

TextStream’in burada kullandığımız ikisinin dışında iki metodu daha vardır:

Write (yaz): Bir String’i dosyaya yazdırır; satır sonuna yeni satır karakteri (Return kodu) koymaz.

WriteBlankLines (boş satır yaz): Bir metin dosyasına argüman olarak vereceğiniz sayıda boş satır yazdırır.
Varolan Metin Dosyasını Açma ve Ek Yapma
(OpenTextFile)
<% Dim DosyaSistemi, MetinDosyasi, Satir Set DosyaSistemi = CreateObject("Scripting.FileSystemObject") Set MetinDosyasi = DosyaSistemi.OpenTextFile("c:yazi_deneme.txt",1, 0) Do Satir = MetinDosyasi.ReadLine %>
<%=Satir%>
<% Loop Until MetinDosyasi.AtEndOfStream MetinDosyasi.Close %>

Set MetinDosyasi = DosyaSistemi.OpenTextFile("c:yazi_deneme.txt",1, 0)

Burada dosya yolunu ve adını veren birinci argümana ek olarak iki yeni argüman görüyorsunuz: “8,0” şeklinde

Bunlardan birinicisi girdi/çıktı durumu (I/O Mode), ikincisi ise biçim (Format) ile ilgilidir. I/O Mode parametreleri şunlardır.

1: okumak için aç
8: eklemek için aç

Açılacak dosyanın biçimini belirttiğimiz son argüman ise şu değerlerden birini alabilir:

0: ASCII dosyası olarak aç
-1: Unicode dosyası olarak aç (Örneğin içinde Türkçe karakterler varsa)
-2: Sistemin varsayılan dosya türü olarak aç

ReadLine. Bu, açılan metin dosyasından bir satır okutmamızı sağlar.
İkinci ve son satırları okutmamızı ise Do..Loop kontrolü sağlar. Bu Döngü AtEndOfStream oluncaya kadar (dosyanın sonuna gelene kadar) devam eder.

Kullanbilecegimiz Diger komutlar;

Read (oku): Bir sayı örgümanı ile çalışır ve verdiğiniz sayı kadar karakter okur.
ReadLine (satır oku): Bir satır okur ve String olarak verir.
ReadAll (tümünü oku): Bütün satırları okur ve tek String olarak verir.
Skip (atla): Bir sayı argümanı ile çalışır ve verdiğiniz sayı kadar karakteri atlar.
SkipLine (satır atla): Bir sonraki satıra atlar.
Bu metodlarla sağladığımız okuma işinin kontrolü amacıyla şu özellikleri de kullanabiliriz:
AtEndOfStream (akımın sonunda): Okutulan dosyanın sonuna gelinmesi halinde True (doğru) olur.
AtEndOfLine (satırın sonunda): Okutulan satırın sonuna gelinmesi halinde True (doğru) olur.

5Nis/110

Server Execute

Server.Execute :
ASP dosyası içerisinden başka bir ASP dosyası çağırmayı sağlar.

ÖRNEK



Benim adım <%Server.Execute("Cagrilan.asp")%> mi?

<'--Cagrilan.asp>
<% response.write "İbrahim" %>

5Nis/110

BuildPath

BuildPath

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.

YeniYol = FSO.BuildPath(yol,eklenecek isim)
<% YeniYol = FSO.BuildPath("C:Inetpubwwwroot","images") %>

YeniYol değişkeninin değeri "C:Inetpubwwwroot mages" olur.
<% Response.Write FSO.BuildPath("Murat","Tatar") %>

Çıktısı "MuratTatar" olur.

Sadece tek bir isim kullanmak zorunda değilsiniz. "images" yerine "imagesdeneme" şeklinde de verebilirsiniz. Bu durumda da çıktı "C:Inetpubwwwroot magesdeneme" olacaktır. Bu metodun yaptığı işi aşağıdaki şekilde de yapabilirsiniz.
<% YeniYol = "C:Inetpubwwwroot" & "" & "images" %>

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.
<% YeniYol = FSO.BuildPath("C:Inetpubwwwroot"," mages") %>

Çıktısı "C:Inetpubwwwroot mages" olur.

Etiketler: Yorum yok
5Nis/110

Server Transfer Include

INCLUDE
SERVER.TRANSFER
Include bir sayfanın kodlarını mevcut sayfaya ekler. ASP'de ise Server.Transfer bu işi yapar. Mesela;


Bu kodu ASP taglarının dışına yazabiliriz. Fakat;
<% Server.Transfer("veri.asp") %>

bu başlı başına bir ASP komutudur. Daha çok Include kullanılır; fakat uzmanlar Server.Transfer kullanmayı öneriyorlar.

NOT: Bu kodları nereye koyarsanız, oraya eklenir. Yani anlaşıldığı gibi bunu menü, anket, üye girişi, şifre kontrol gibi yerlerde kullanıyoruz.

5Nis/110

Application Uygulamalar Örnekler

APPLICATION

Belirtilen uygulamadaki tanımlı bütün kullanıcıların bilgiyi paylaşmaları için Application nesnesini kullanabiliriz.

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...

Aşağıdaki örneği Sayac.asp adıyla kaydedin.

<% Response.Expires = 0 'Expires sayesinde sayfanın içeriğinin bilgilerinin cache bellekte saklanmasını engelleriz. %>

<% If (Application("Sayac") = "") Then 'Bu ziyaretçi için Application başlatılmadıysa başlatılsın. Application("Sayac") = 0 End If Application.Lock 'Application'ı Kilitliyoruz. Ve kullanıcı giriş yaptıktan sonra 1 değer 'arttırıyoruz. <% Application("Sayac") = Application("Sayac") + 1 Application.UnLock 'Ve tekrar serbest bırakıyoruz. Diğer kullanıcılarla bu Application 'kullanılabilsin diye... %>
Bu Sayfaya <%= Application("Sayac") %> Kere Giriş Yapıldı.

Bu kodu yazıp çalıştırdığımız zaman, sayfayı her yenilediğimizde sayaç bir değeri kadar arttırılacaktır..

5Nis/111

ADOVBS Nedir ActiveX

ADOVBS.inc (ActiveX Data Objects (ADO) for Visual Basic Script (VBS or VBScript))

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.

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.

Bu dosya, Server tarafından icra edilir ve ADO nesnesinin sayı halindeki bütün argümanlarını anlaşılabilir İngilizce kelimelere çevirir.

Veritabanı bağlantılarının dosyasıyla ADO nun bulunduğu sayfalarda genellikle aşağıdaki şekilde ifadeler vardır.

Rs.open dbconn , sql , 3 ,1

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.

<% '-------------------------------------------------------------------- ' Microsoft ADO ' ' Copyright (c) 1996-1998 Microsoft Corporation. ' ' ' ' ADO constants include file for VBScript ' '-------------------------------------------------------------------- '---- CursorTypeEnum Values ---- Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ………%>

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
rs.Open dbconn, sql , adOpenStatic , adLockReadOnly
ş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. ) : ) .

.inc uzantısı hakkında :

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.

Ado sabitlerinin kullanılabilmesi için dosyanın kullanılacak sayfaya include edilmesi gerekir.


veya

Bu sabitler ile recordset nesnesini 4 şekilde kullanbiliriz.

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.

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.

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...

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...

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.

AdLockReadOnly: Kayıtlı verilerimizin değiştirilmesini, üzerine yazılmasını engellememizi sağlar. Yeni kayıt girişini engeller. Sadece Listelemeye izin verir...

AdLockOptimistic: Bu metodumuz da kayıtlarımızın güncelleştirilmesini, yeni kayıtlar eklememizi, ve istersek silmemizi sağlar.
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.

5Nis/110

Page Counter (sayaç)

Page counter özelligi için

<% Set MyPageCounter = Server.CreateObject("MSWC.PageCounter") MyPageCounter.PageHit %>
Bu Web sayfası <%= MyPageCounter.Hits %> kez görüntülenmiştir.

kodunu eklemelisiniz

5Nis/110

Asp Değişken Bildirimi

Asp Değişken Bildirimi

VBScript'te degiskenler için esneklik had safhadadir. Degisken bildirim zorunlulugu bulunmamaktadir. Ve buna bağli olarak degişken türü bildirimi de yoktur.

Degişkenleri tanımlamak istiyorum diyorsanız Bunu DIM komutunu kullanmalısınız. DIM, Dimension (boyutlandır) kelimesinden kısaltılmıştır.

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:

1- Değişken ismi bir harf ile başlamalıdır
Ad1,Ad2 şeklinde değişken tanımı yapılabilir fakat 1Ad veya 2Ad kullanımı yanlıştır.

2-Değişken isminde boşluk bulunamaz. Bunun yerine alt çizgi karakteri kullanılabilir.
Adi_Soyadi doğru kullanımdır. Değişken isimlerinde türkçe karekterler kullanılmaz.

3-Değişkene verilecek isim Vbscript komutlarını içeremez
Dim bir değişken ismi olamaz.

4-Değişken ismi 255 karakterden fazlada olamaz.

<% DIM Gun, Ay, Ogrenci, Not Gun = "Sali" Ay = "Mart" Ogrenci = "Selcuk" Not = 5 %>

Bir ASP sayfasının birinci satırı olarak
<% OPTION EXPLICIT %>

yazarsanız size tanımlamadığınız değişkenleri tanımlamadan programınızı çalıştırma izni vermeyecektir.

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.

5Nis/110

ASP Nedir?

ASP (Active server pages / Aktif Sunucu Sayfaları)

ASP bir Microsoft teknolojisidir.

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.
ASP NASIL İŞLİYOR?
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.

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.

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.

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.

Etiketler: , Yorum yok
Copy Protected by Chetan's WP-Copyprotect.