ASP sayfası hazırlama

Dreamweaver mx de ASP çalışmak için daha önceden ASP ile uğraşmış olmak gereklidir. Her nekadar Dreamweaver Mx işimizi kolaylaştırsa da ASP 'den anlamak bazı durumlarda faydalı olacaktır. ASP öğrenmek için Dr. Hakkı ÖCAL 'ın ASP kitaplarını tavsiye ederim

Bilgisayarımızda PWS veya IIS yüklenmiş olduğunu söylemeye gerek yok sanırım. İşe önce yeni bir ASP sayfası açmakla başlayalım. Çünkü HTML içerikli sayfada Dreamweaver mx ASP çalışmaya izin vermez. Yeni bir ASP sayfası açtıktan sonra Insert-ASP menüsüne bakalım. Yanlız buradakilerin bazıları ASP-VBscript ve ASP-Javascript sayfa yapısında farklıdır. Bunları ayrıca belirttim.

Insert - ASP menüsü

 
Server variable - Server değişkenleri ekler. Bunlar Web Server'ımızın o anda çalışmakta olan ASP sayfası için oluşturduğu ortamın değişkenleridir
Variable:
ALL_HTTP HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde "HTTP_" öneki vardır.
AUTH_PASSWORD Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
AUTH_TYPE Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi
CONTENT_LENGTH İstemcinin gönderdiği bilgi yumağının boyutu
CONTENT_TYPE Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür
GATEWAY_INTERFACE Web Server'ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1
PATH_INFO Çalışmakta olan ASP'nin göreli yolu ve adı
PATH_TRANSLATED Çalışmakta olan ASP'nin gerçek yolu ve adı
QUERY_STRING İstemcinin gönderdiği bilgi kümesi
REMOTE_ADDR İstemcinin Host'unun (ISS'inin) IP'si
REMOTE_HOST İstemcinin Host'unun (ISS'inin) adı
REMOTE_USER İstemcinin gerçek adı
REQUEST_METHOD İstemciden bilgi isteme yöntemi (GET veya POST)
SCRIPT_NAME Çalışmakta olan ASP'nin adı
SERVER_NAME Sunucu'nun adı
SERVER_PORT Sunucuya bağlantının geldiği TCP kapı numarası
SERVER_PORT_SECURE TCP kapısı güvenli ise 1, değilse 0
SERVER_PROTOCOL Server'ın çalıştırdığı HTTP'nin sürümü
SERVER_SOFTWARE Server programının adı ve sürümü

Wrap in <% %> :
Bu kodlar için Sayfaya <%...%> ekler.

 
Include - Harici dosyalar ekler.

 
Code block - ASP nin bildiğimiz ( <% ... %>) kod bloğunu ekler.

 
Output - HTML kodları arasında ASP çıktıları verir.
Örneğin ; <font color="#FFCC33"><%=yaz("ad")%></font>

 
If - Şart yapısını ekler.
VBscript için <% if then %>
Javascript için <% if () %>

 
Else - değil ise yapısını ekler.
<% else %>

 
Else if - eğer değil ise yapısını ekler.
Vbscript için <% elseif then %>
Javascript için <% else if () %>

 
End - şartı sonlandırır.
Sadece Vbscript için <% endif %>

 
Response.write - Yazdırma metodu ekler.
Response.write()

 
Trimmed form element - Form içinden bilgi almayı sağlar.
Trim(Request.Form(""))

 
Trimmed QueryString element - Ziyaretçiden servere gelen her tür bilgiyi almayı sağlar.
Trim(Request.QueryString(""))

 
Server.CreateObject - Veritabanından yararlanmak için Server in CreateObject metodunu kullanır.
= Server.CreateObject("")

 
More tag... - ASP için başka taglar ekler.

INSERT - Application

Recordset ile ilgili uygulamaları sonraki sayfada bulabilirsiniz.

 
Recordset - ADO nun kayıt dizisi nesnesini ekler.
Name : Bağlantı adı
Connection : Bağlantı dosyası (sayfaya include edilecek)
Table : Veritabanı tabloları
Column : Veritabanı tablo verileri
Filter: Verilere uygulanan filtreler
Sort: Veri sıralaması

 
Repeated region - Veritabanı tablolarına ekleme yapmayı sağlar. Örneğin veritabanından isim ve telefon gösteren tablo oluşturmuşsak isim kolonunu seçerek repeated region ile veri listesini arttırabiliriz.

 
Dynamic table - Veritabanındaki verileri tablo şeklinde listeler.
Recordset : Bağlantı adı
Show: Gösterilecek kayıt sayısı
Border: Tablonun çerçevesi

 
Dynamic text - Veritabanı verisini gösterir.
Field : Veritabanı verileri
Format : Veri türü
Code: Kod eklemek için

 
Recordset navigation bar - Kayıt bilgilerini ileri-geri gösterme menüsü oluşturur.

 
Recordset navigation status - Verileri navigation bar ile listelerken ilk,son ve toplam veri içerik sayısını gösterir.


 
Master detail page set - Dynamic table ile benzerdir. Ancak burada istediğimiz verileri listeleyebilir ayrıca ilgili veri için bir detay dosyası gösterebiliriz.
Recordset: Bağlantı adı
Master page fields: Gösterilcek veriler
Link to detail from: Detay dosyasını bağlıcağımız veri
Pass uniqe key: Anahtar veri
Detail page name: Oluşturulacak detay dosyası
Detail page fields: Detay dosyasında gösterilecek veriler

 
Record insertion form - Kayıt ekleme formu oluşturur.
Connection : Bağlantı adı
Insert into table: Veritabanı tablosu
After inserting, GOTO : Bilgilerin girildiğine dair bir onay dosyası
Form fields: Form elemanları
Label : Eleman adı
Display As: Form elemanının ekrandaki türü (yazı alanı, radyo butonu...)
Submit As: Form elemanının biçimi(karakter, sayı, tarih)

 
Record update form - Kayıt güncelleme formu ekler.

  Recordset (Kayıt dizisi) oluşturma

Application uygulamalarını daha iyi anlamak için bir mesaj panosu örneği yapalım. Bunun için ilk önce Access (.mdb) veritabanı oluşturmalıyız.Dosyayı burdan indirebilirsiniz.Bu dosyanın özellikleri aşağıdaki gibi olabilir;

Veritabanı dosyası Mesaj.mdb  
Tablo adı Mesaj  
Alanlar id Otomatik sayı
  Ad Metin
  Mesaj Not
  Tarih Tarih/saat

Şimdi bu ole-db extensionu yükleyip kuralım. Bu extension ile otomatik veritabanı bağlantısı yapabiliririz. Kurduktan sonra aktif olması için dreamweaveri kapatıp tekrar başlatın.

Yeni bir ASP-Vbscript dosyası açalım. Insert-Application dan bir Databases > OLE DB connections seçelim. Sonra ;

1 - connection name kısmına 'baglanti' gibi bir bağlantı adı yazalım.
2 - Build tıklayıp veritabanını seçiyoruz.
3 - Veritabanını seçtikten sonra Test tıklayıp deneme yapabiliriz.

Not: Eğer bağlantı oluşturamadıysanız manuel Custom connecting string ile aşağıdaki satırları deneyebilirsiniz;

MS Access ODBC DSNless bağlantısı için
Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\yol\mesaj.mdb
veya
"Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("..\yol\mesaj.mdb")

MS Access OLE DB bağlantısı için
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\yol\mesaj.mdb
veya
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("..\yol\mesaj.mdb")

Tüm bunlardan sonra Insert-Application > Bindings > + > Recordset tıklayalım. Connection yerinden tanımladığımız 'baglantı' veritabanı adını seçtiğimiz zaman veritabanı aktif olacak ve tabloları görebileceğiz. Oluşturulan her veritabanı bağlantısı sitemizin bir alt dizini içindeki connections klasöründe depolanır.

Buradaki Filter ile mesaj tablosu verilerini belli kriterlere göre seçtirebiliriz. Örneğin id > 5 olanları veya adları A ile başlayanları seçebiliriz. Sort ile de elemanları büyükten küçüğe yada küçükten büyüğe sıralamak mümkün. Tabi şimdilik mesaj.mdb dosyamız boş olduğu için olayları gözlemleyemeyiz. OK dedikten sonra Recordset oluşturmuş oluruz.

Recordset ekledikten sonra Window > Bindings penceresinde bu recordset i görebiliriz. Burada eklediğimiz tüm application ları kontrol edebiliriz. Bağlantı dosyası olan baglanti_dosyasi.asp connections dizini altındadır.

Dosyamızı internette yayımlarken veritabanı dosyasının bulunduğu yeri belirtmek gerekir. Bunun için;

Kayıt formu oluşturalım

Şimdi kayıt formu oluşturalım. tıkladıktan sonra şekildeki yerleri doldurun.

Ad: textfield
Mesaj: textarea
Tarih: Hidden field olacak. Tarih için default value değerini şimşek simgesine tıklayıp tarih i seçebiliriz.

Burda dikkat ederseniz id verisini formda kullanmadık çünkü id otomatik sayıdır.

mesaj_kaydet.asp dosyası form bilgilerinin doğru girildiğini gösteren bir dosyadır.Buraya yönlendirmek istediğimiz başka bir dosyada yazabiliriz.

F12 ile hazırladığımız kayıt formunu browserda test edebilirsiniz.Eğer "belirtilen sayfanın öz niteliği geçersiz" diye bir hata alırsanız sayfanın başındaki <%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%> satırını <%@LANGUAGE="VBSCRIPT"%> olarak değiştirin.

Kayıt tablosu ekleme

Şimdi ise kayıtları gösteren bir tablo hazırlayalım. Bunun için (dynamic table) veya (Master detail page) kullanabiliriz. Dynamic page sadece verileri listeler. Master detail page ile detay dosyasıda oluşturabiliriz. Şimdi Master detail page simgesine tıklayıp gerekli yerleri dolduralım.

Master page fields kısmı: Ana sayfada gözükecek veriler.
Link to detail from: ad kısmına tıklayanlar ilgili detayı görebilecek.
Show: Burada sayfada kaç kayıt göstereceğimizi belirliyoruz.
Detail page name: detay dosyası
Detail page fields: Detay dosyasındaki gözükecek veriler.

Tablomuzu oluşturduk. Ana sayfayı F12 ile çalıştırdığımızda isimler ve mesajlar gözükecek. Her isme tıklandığında ona ait diğer bilgiler (id,ad,mesaj,tarih) detay dosyasında gözükür.

Kayıtlı verileri gösterme

Bir Recordset oluşturduktan sonra window > Bindins penceresinde Recordset içindeki tüm kayıtları, ilk, son ve toplam kayıtları bu pencereden mouse ile sayfaya sürükle-bırak yapabiliriz. Aynı şeyi ile yapabiliriz.

Field: Kayıtlı alanlardan istediğimizi seçebiliriz.
Format: Bu kısımda örneğin Tarih alanını seçmişsek tarihin biçimini ayarlayabiliriz.

Üye girişli sayfa yapmak için hazırlayacağımız dosyalar;

1- user.mdb (üyelerin kayıtlı olduğu MS Access veritabanı dosyası)
2- kayit.asp (yeni üye kaydı)
3- kayit_var.asp ('Bu üye zaten kayıtlı')
4- kayit_okey.asp ('Kaydınız tamamlandı')
5- gir.asp (üye girişi)
6- anasayfa.asp (ana sayfa)
7- izin_yok.asp ('izinsiz giremezsiniz')
8- uye_yok.asp ('İlgili üye bulunamadı')
8- cikis.asp (üyelik çıkışı)

user.mdb dosyasını id(otomatik sayı), kullanici(text) , parola(text) ve tablo adı giris şeklinde hazırlayabiliriz. Şimdi ilk olarak yeni üye kaydı(kayit.asp) sayfasını hazırlayalım.

Yeni üye kaydı (kayit.asp)

1- Yeni bir ASP-VBscript sayfası açalım.

2- Insert-Form dan iki tane text field ve bir buton oluşturalım. İlk text field kullanici adında, ikincisi parola adında ve tipi password olsun.

3- Application > Server Behaviors > + > Insert Record diyelim.


Connection > define
ile yeni bir bağlantı oluşturalım. Bu konuyu bir önceki sayfada görebilirsiniz. Oluşturduğumuz form elemanlarıyla form elementlerini ilişkilendirip tamam diyoruz.
After inserting, GO TO : Kayıdın tamamlandığını bildiren sayfa(kayit_okey.asp)

4- Application > Server Behaviors > + > User Authentication > Check New username

if Already Exists, GOTO : İlgili kayıdın zaten olduğunu gösteren sayfa(kayit_var.asp)

5- Hazırladığımız sayfası kayit.asp olarak kaydedin.

Üye kaydı tamam (kayit_okey.asp)

Bu sayfada 'Üyelik kaydınız tamamlandı, şimdi giriş yapabilirsiniz...' şeklinde bir yazı yazıp gir.asp ye bir link verebilirsiniz.

İlgili üye zaten var (kayit_var.asp)

Bu sayfada 'Bu kullanıcı adında bir üye zaten var, yeniden deneyin...' gibi bir yazı ile gir.asp ye link verebilirsiniz.

Üye girişi (gir.asp)

Yeni bir ASP Vbscript sayfası açıp Application > Server Behaviors > + > User Authentication > Log in User

Ayarları şekildeki gibi yapalım.

Bu sayfada ayrıca 'Üye değilsen üye ol' şeklinde kayit.asp ye link verebiliriz.

İlgili üye bulunamadı (üye_yok.asp)

Bu sayfada 'Bu isimde bir üye yok, tekrar giriş yapın...' gibi bir yazı ile gir.asp ye link verebiliriz.

Ana sayfa (anasayfa.asp)

Burası sadece üyelerin girebildiği ana sayfa. Buraya üye olmayanların direk girmemeleri için bir session kontrolü koymalıyız.Bunu da Resctrit Access to page ile yapıyoruz. Application > Server Behaviors > + > User Authentication > Resctrit Access to page

if Access denied, GOTO: izin_yok.asp

Anasayfa.asp içinde 'Merhaba xxx , sayfaya hoşgeldin.' şeklinde giriş yapılan kullanıcı adını göstermek için session variable kullanabiliriz. Bunu Application > Bindings > + > Session variable

Burada kullanılan session Dreamweaver Mx in oluşturduğu kullanıcı adı için MM_Username dir.

Oluşturduğumuz session u panelden sürükle-bırak şeklinde sayfada istediğimiz yerde kullanabiliriz.

Anasayfa da ayrıca kullanıcının oturumdan çıkmasını sağlayan cikis.asp ye link verebiliriz.

Oturumdan çık (cikis.asp)

Oturumdan çıkış sayfasını Application > Server Behaviors > + > User Authentication > logout user ile veya cikis.asp dosyasının en başına aşağıdaki kodları yazarak yapabiliriz;

<%
' *** Logout the current user.
Session.Contents.Remove("MM_Username")
Session.Contents.Remove("MM_UserAuthorization")
%>

Kaynak www.geocities.com/dwmxtr/asp_2.htm

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...