Gönderen Konu: Asp Dersleri ve Örnekleri  (Okunma sayısı 8088 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
Asp Dersleri ve Örnekleri
« : Nisan 23, 2007, 12:20:31 ÖS »
Bu konuyla ilgili sorularınızı Web Tasarım Destek Hattına sorunuz. Bu konuya sadece dersler eklenecektir.

Veritabanı Bağlantısı Oluşturmak

Veritabanı bağlantısı oluşturmak için ilk önce bir asp uzantılı dosyanızın olması gerekir. Daha sonra birde access ile oluşturulmuş veritabanınızın bulunması gerekmektedir. Bu asp uzantılı dosyanız ve access ile oluşturulmuş veritabanınız varsa aşağıdaki işlemleri takip edin.

Dosyanızın içeriği (asp uzantılı):

Kod: [Seç]
<%
set Baglanti= Server.CreateObject("ADODB.Connection")
Baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb"))
%>

<%
Baglanti.Close
Set Baglanti= Nothing
%>

Yukarıdaki kodlarda da görüldüğü gibi ilk önce bağlantımızın veritabanı yolunu belirterek açtık ve daha sonrada kapattık.
Konuyu Paylaş:
  delicious  facebook  twitter  google
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #1 : Nisan 23, 2007, 12:22:22 ÖS »
Veritabanına Kayıt Ekleme

Veritabanına kayıt eklemek için 2 adet asp uzantılı dosya kullanmanız gerekmektedir. Bu işlemi tek sayfada da yapmanız mümkündür. Ancak daha ayrıntılı anlayabilmeniz için 2 ayrı sayfada bu işlemi gerçekleştireceğim. Tek sayfada yapma işlemini daha sonraki ekleyeceğim makalelerde öğrenebilirsiniz. Yapacağınız 2 adet asp dosyasının adları şu şekilde olsun:

Kod: [Seç]
form.asp
kaydet.asp

Yukarıdaki şekilde iki adet dosyayı oluşturduktan sonra içerisinde aşağıdaki kodları eklemeniz gerekmektedir.

form.asp dosyasının içeriği:

Kod: [Seç]
<form method="POST" action="kaydet.asp">
<input type="text" name="konu" size="25">
<textarea name="mesaj" rows="3" cols="25"></textarea>
<input type="submit" value="Bilgileri Gönder" name="B1">
</form>

Yukarıdaki gibi bir dosya oluşturdunuz. Bu sayfa sizin bilgilerinizi girmeniz için gerekli olan bir formdur. Burada iki adet form kutusu ve bir adet gönderme düğmesi bulunmaktadır. Form kodundaki action ile belirtilen yer verilerinizi göndereceğiniz sayfanın adresidir. Örnekteki gibi kaydet.asp dosyasına verileri göndereceğiniz için o şekilde bir kod yazdık. Şimdi ise geldik verileri kaydetme işlemi yapan sayfaya...

kaydet.asp dosyasının içeriği:

Kod: [Seç]
<%
konu=Request.Form("konu")
mesaj=Request.Form("mesaj")
set Baglanti= Server.CreateObject("ADODB.Connection")
Baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb"))

Set verikaydet=Server.CreateObject("Adodb.Recordset")
Sorgu="Select * from veritablosu"
verikaydet.Open Sorgu, Baglanti, 1, 3

verikaydet.AddNew
verikaydet("konu")=konu
verikaydet("mesaj")=mesaj
verikaydet.Update
Response.Write "Veriniz veritabanına kayıt edildi."

verikaydet.Close
Set verikaydet=Nothing

Baglanti.Close
Set Baglanti=Nothing
%>

Yukarıdaki sayfamızda form.asp dosyasından alınan verileri veritabanına kayıt etme işlemini gerçekleştirdik. Yukarıda sırasıyla paragraf olarak neyin ne olduğunu açıklayayım. İlk paragrafta form.asp dosyasından bilgileri alıyoruz. İkinci paragrafta veritabanı bağlantımızı açıyoruz. Üçüncü parafrafta veritabanımızı açıyoruz. Dördüncü paragrafta bilgileri kaydedip birde eklendiğine dair ekrana mesaj yazdırıyoruz. Beşinci paragrafta açtığımız veritabanımızı kapatıyoruz. Son paragrafta ise açtığımız veritabanı bağlantımızı kapatıyoruz.

Bu verileri kaydetmek için kullanacağınız veritabanı dosyasına ait açıklama:
Dosya adı: veritabanı.mdb
Veritabanının içindeki tablo adı: veritablosu
Tablonun içindeki alanlar: konu - mesaj
konu ve mesaj alanlarının özellikleri not yada metin olarak ayarlayabilirsiniz.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #2 : Nisan 23, 2007, 12:24:12 ÖS »
Veritabanından Kayıt Alma ve Verileri Sayfalama

Veritabanındaki bilgileri almak için bir asp uzantılı dosyamızın olması gerekmektedir. Bu dosyada ilk önce veritabanımızın bağlantısını açıp, veritabanımızı açarak verileri isteyeceğiz. Bu verilerin çok olması durumunda 2. sayfaya ve diğer sayfalara bölmesini sağlayacağız. Bunun için bir asp uzantılı dosya oluşturalım. Dosyamızın adı veri.asp olsun.

veri.asp dosyasının içeriği:

Kod: [Seç]
<%
set Baglanti = Server.CreateObject("ADODB.Connection")
Baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb"))
Sorgu = "SELECT * FROM VeriTablosu"
set verial = server.createobject("ADODB.Recordset")
verial.open Sorgu,Baglanti,1,3

mesajadet = verial.recordcount
sayfasayisi = 10

If verial.eof then
%>
Kayıtlı veri yok.
<%
Else

if request("s")<>"" then
sayfa = cdbl(request("s"))
verial.move sayfa*sayfasayisi
else
sayfa = 0
end if
for t=1 to sayfasayisi
if verial.eof then exit for
%>

Veri: <%=verial("mesaj")%><br>

<%
verial.movenext
next

verial.close
set verial=nothing

Baglanti.CLOSE
SET Baglanti = NOTHING
%>

Sayfa : <%
if mesajadet/sayfasayisi = int(mesajadet/sayfasayisi) then sayfaadet = mesajadet/sayfasayisi else sayfaadet = int(mesajadet/sayfasayisi) +1
for p=0 to sayfaadet-1
if sayfa = p then
%>
[<%=p+1%>] <% else %> <a href="veri.asp?s=<%=p%>">[<%=p+1%>]</a> <%
end if
next
end if
%>

Yukarıdaki gibi bir dosya hazırladığınızda verileri veritabanından aldırabilir ve verileri belli bir sayıdan sonra sayfalayabilirsiniz. Buradaki kodların açıklamasını yapayım ve siz daha iyi anlayın. İlk paragrafta veritabanı bağlantımızı açtık. İkinci paragrafta veritabanımızı açtık. Üçüncü paragrafta verileri sayfalamaya hazırladık. Burada belirtilen sayfasayisi = 10 yazan yerdeki rakamı isteğinize göre düzenleyebilirsiniz. Buradaki 10 rakamı verilerin kaç sayfada bir listelenmesini istiyorsanız bu onu göstermektedir. Dördüncü paragrafta eğer veritabanında kayıt yoksa sayfanız hata vermesin diye bir uyarı mesajı ekledik. Eğer veritabanınızda kayıt yoksa Kayıtlı veri yok. şeklinde bir uyarı alırsınız. Beşinci paragrafta verileri yazdırma ve sayfalama aşamasına geldik. Bir önceki paragrafta kayıtlı veri bulunmazsa bir uyarı mesajı verdirmiştik. Bu paragrafta ise kayıtlı bir veri varsa bunu ekrana yazdırıyoruz. Altıncı paragrafta verimizi ekrana yazdırıyoruz ve verilerin aşağı satıra doğru devam etmesi için <br> kodunu ekliyoruz. Yedinci paragrafta verilerimizi devam ettiren kodu yazıyoruz. Sekizinci paragrafta açtığımız veritabanımızı kapatıyoruz. Dokuzuncu paragrafta ise açtığımız veritabanı bağlantımızı kapatıyoruz. Son paragrafta ise sayfalama yapmak için kodu yazıyoruz.
Bu şekilde yaptığınızda veritabanından kayıtları site üzerinde bir sayfaya yazdırıp belli mesaj sayısından sonra verileri sayfalayabilirsiniz.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #3 : Mayıs 23, 2007, 22:18:45 ÖS »
Tarih Biçimleri

1.Format
<%= FormatDateTime(Date) %>
Ekrana çıktısı "11.05.2005" şeklindedir.

2.Format
<%= FormatDateTime(Date, 0) %>
Ekrana çıktısı "11.05.2005" şeklindedir.İlkinci ile farkı yoktur.

3.Format
<%= FormatDateTime(Date, 1) %>
Ekrana çıktısı "11 Mayıs 2005 Çarşamba" şeklindedir.

4.Format
<%= FormatDateTime(Date, 2) %>
Ekrana çıktısı aynı şekilde "11.05.2005" şeklindedir.

5.Format
<%= FormatDateTime(Now, 3) %>
Çıktısı "13:01:56" şeklindedir.Zamanı gösterir.Aynen "Saat:Dakika:Saniye" dir.

6.Format
<%= FormatDateTime(Now, 4) %>
Çıktısı "13:01" şeklindedir.Zamanı gösterir ve "Saat:Dakika" şeklindedir.

7.Format
<%= FormatDateTime(Now) %>
Çıktısı "11.05.2005 13:01:56" şeklindedir.Tarih ve zaman bilgisini gösterir

Not : Burada kullanılan tarihler LCID 'e göre değişkenlik gösterir.Session.Lcid değerini 1033 veya 1055 den birini yaptığınız zaman bu görünüm değişir.

asprehberi.net'ten alıntıdır.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #4 : Mayıs 23, 2007, 22:38:03 ÖS »
Kategoriye Göre İçerik Listeleme

Bu derste kategoriye göre içerik listeleme anlatılacaktır. Kategori ekleme ve içerik ekleme ile ilgili Veritabanına Kayıt Ekleme dersine bakabilirsiniz.

Öncelikle veritabani.mdb adlı bir veritabanımız olsun. Bu veritabanına ait 2 tablo oluşturun. Tablo isimlerinden birisi KATEGORILER diğeri ICERIKLER olsun.
KATEGORILER tablosuna şu sütunları sırasıyla oluşturun: KATEGORI_ID (Otomatik Sayı), KATEGORI_ADI (Metin)
ICERIKLER tablosuna şu sütunları sırasıyla oluşturun: ICERIK_ID (Otomatik Sayı), KATEGORI_ID (Sayı), ICERIK_ADI (Metin), ICERIK_YAZISI (Not)

Bundan sonra yapacağınız iş Veritabanından Kayıt Alma ve Verileri Sayfalama dersinde anlatılan işlemlerdir.

Yapmanız gereken aşağıdaki kodu kullanmaktır:
Kod: [Seç]
<%
KATEGORI_ID=Request.QueryString("KATEGORI_ID")
set Baglanti = Server.CreateObject("ADODB.Connection")
Baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb"))
Sorgu = "SELECT * FROM ICERIKLER WHERE KATEGORI_ID=" & KATEGORI_ID
set verial = server.createobject("ADODB.Recordset")
verial.open Sorgu,Baglanti,1,3

mesajadet = verial.recordcount
sayfasayisi = 10

If verial.eof then
%>
Kayıtlı veri yok.
<%
Else

if request("s")<>"" then
sayfa = cdbl(request("s"))
verial.move sayfa*sayfasayisi
else
sayfa = 0
end if
for t=1 to sayfasayisi
if verial.eof then exit for
%>

İçerik Adı: <%=verial("ICERIK_ADI")%> - İçerik Yazısı:<%=verial("ICERIK_YAZISI")%><br>

<%
verial.movenext
next

verial.close
set verial=nothing

Baglanti.CLOSE
SET Baglanti = NOTHING
%>

Sayfa : <%
if mesajadet/sayfasayisi = int(mesajadet/sayfasayisi) then sayfaadet = mesajadet/sayfasayisi else sayfaadet = int(mesajadet/sayfasayisi) +1
for p=0 to sayfaadet-1
if sayfa = p then
%>
[<%=p+1%>] <% else %> <a href="veri.asp?kategori_id=<%=KATEGORI_ID%>&s=<%=p%>">[<%=p+1%>]</a> <%
end if
next
end if
%>

Bu yukarıdaki kodun anlatımı bir önceki derste mevcuttur. Bunda farklı olan Request.QueryString("KATEGORI_ID") kodudur. Bu koda göre içeriği kategoriye göre listeliyoruz. İlk başta bu kodu tanımladık. Daha sonra içerikleri sorgulatırken kategori id'sini alarak sorgulattık. İçeriklerimizide sayfalama sırasında kategori id'sini yansıttık.

Bir kategorideki içerikleri listeletmek için vereceğiniz link şu şekilde olmalıdır: veri.asp?kategori_id=<%=KATEGORI_ID%>
Bu yukarıdaki <%=KATEGORI_ID%> kısmını veritabanından otomatik olarak listeletmeniz gerekir.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #5 : Mayıs 23, 2007, 23:33:32 ÖS »
Veritabanından Kayıt Silme

İlk önce kayıtları silme kodunu bir sayfa oluşturup ekleyin. Mesela sayfamızın adı sil.asp olsun.

sil.asp dosyası kodları:
Kod: [Seç]
<%
set Baglanti = Server.CreateObject("ADODB.Connection")
Baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb"))

set ID = Request.QueryString("ID")

Sorgu = "delete * from Tabloismi where ID="
Sorgu = Sorgu & ID
set db=Baglanti.Execute(Sorgu)

Response.Write "Veri silindi."

Baglanti.CLOSE
SET Baglanti = NOTHING
%>

İlk paragrafta veritabanımıza bağlanıyoruz. İkinci paragrafta veritabanında kayıtlı bulunan verimizin id'sini alıyoruz. Üçüncü paragrafta silme işlemini gerçekleştiriyoruz. Dördüncü paragrafta veriyi sildiğinize dair bir ileti alıyoruz. Son paragrafta ise bağlantımızı kapatıyoruz.

İkinci paragrafta veri id'sini almak için:
Verilerinizi listelediğiniz bir sayfanız var. Bu verileri listelerken verilere ait id'leri de kullanacaksınız. Her veriye ait bir silme linki eklemelisiniz. Örnek olarak şöyle bir link vermeyi deneyebilirsiniz: sil.asp?id=<%rs("ID")%>
Bu yukarıdaki şekilde bir link verdiğinizde o linke tıkladığınızda sizi sil.asp sayfasına id ile birlikte gönderecek ve bu sayfada ilgili veriyi silmiş olacaksınız.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı burajan

  • Web Programcısı
  • Administrator
  • *
  • İleti: 5109
  • Puan: 334
  • Cinsiyet: Bay
  • Web Programcısı
    • Burak ŞİMŞEK - Kişisel İnternet Sitesi
-Asp Dersleri ve Örnekleri
« Yanıtla #6 : Mayıs 28, 2007, 22:50:53 ÖS »
Veritabanı Kayıt İşlemlerinde Tarih

Asp ile ilgili hazırladığınız bir sayfa var diyelim. Bu sayfada veri ekleme işlemlerinde tarih eklemek istiyorsunuz. Bunun en kolay yolu veritabanının kendisi otomaik olarak tarih ekleme işlemi yaptırmaktır.

Bunu yaptırmak için veritabanını açıyorsunuz. Tarih işlemi yapacağınız tablonuzun üzerine gelip mouse sağ tuşu ile tıklayıp, Tasarım Görünümü seçeneğine tıklayınız. Alan Adı kısmından tarih işlemi uygulanacak kısmı buluyorsunuz. Onun karşısında Veri Türü kısmı var. Burada seçenekleri açıp Tarih/Saat seçeneğini seçiniz. Bunu ayarladıktan sonra alt kısımda Alan Özellikleri bulunmaktadır. Tarih/Saat fonksiyonunun Alan Özelliğinde Varsayılan Değer kısmını bulun. Varsayılan Değerin karşısına Now() değerini ekleyin.

Bu yukarıdaki işlem ile eklediğiniz her veri için otomatik olarak tarih eklenir. Bu işlem ile ilgili örnek resim ekte gösterilmiştir.
Kişisel İnternet Sitem => buraksimsek.com.tr - http://www.buraksimsek.com.tr

Lütfen özel mesaj ile destek istemeyiniz. Önce forumda arama yapınız daha sonra forumda ilgili bölüme konu açınız.

Çevrimdışı Yunus Emre

  • İleti: 611
  • Puan: 52
  • Cinsiyet: Bay
  • Doğduğum gün, öleceğim gün, diriltileceğim gün.
-Asp Dersleri ve Örnekleri
« Yanıtla #7 : Haziran 11, 2007, 21:24:50 ÖS »
---------------  Response.Redirect Yönlendirme  ---------------


1.Sayfa
Kod: [Seç]
<%
Response.Redirect "uyegiris.asp"
%>

 Yönlendirilen Sayfa ;

2. Sayfa(uyegiris.asp)
Kod: [Seç]
<%
Response.Write "Üye Girişiniz Onaylanmıştır"
%>

Açıklayalım ;

Birinci sayfa  reponse.redirect komutu ile sizi 2. sayfaya yönlendiriyor.
Tema Reklam - Tanıtım.

Çevrimdışı Yunus Emre

  • İleti: 611
  • Puan: 52
  • Cinsiyet: Bay
  • Doğduğum gün, öleceğim gün, diriltileceğim gün.
-Asp Dersleri ve Örnekleri
« Yanıtla #8 : Haziran 24, 2007, 11:29:46 ÖÖ »
Üyelik Sistemi Yapımı ;

giris.asp ;

Kod: [Seç]
<% if Session("durum")="giris_yapmis" then %>
<% Response.Redirect "giris_sayfasi.asp" %>

<%else %>
<FORM name=loginform action="giris_kontrol.asp" method=post>
<FONT face=verdana size=2>Kullanıcı Adı:</FONT></td><td><input name=kullanici_adi></td></tr>
<tr><td><FONT face=verdana size=2>Şifre:</FONT></td><td><input type=password name=sifre></td></tr>
<tr><td><center><input type=submit value=Gönder></center></FORM>
<% end if %>

giris_kontrol.asp ;

Kod: [Seç]
<%
Set baglanti = Server.CreateObject("ADODB.Connection")
baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath
("database/db.mdb")
%>

<%
'Sql Injection 'ı Önlemek ve HTML Kodlarını Pasif Hale Getirmek İçin
Kullanılan
Karakter Temizleme Metodu
function guvenlik(data)
data = Replace (data ,"`","",1,-1,1)
data = Replace (data ,"=","",1,-1,1)
data = Replace (data ,"&","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"!","",1,-1,1)
data = Replace (data ,"#","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"And","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"Chr(34)","",1,-1,1)
data = Replace (data ,"Chr(39)","",1,-1,1)
data = Replace (data ,"select","",1,-1,1)
data = Replace (data ,"join","",1,-1,1)
data = Replace (data ,"union","",1,-1,1)
data = Replace (data ,"where","",1,-1,1)
data = Replace (data ,"insert","",1,-1,1)
data = Replace (data ,"delete","",1,-1,1)
data = Replace (data ,"update","",1,-1,1)
data = Replace (data ,"like","",1,-1,1)
data = Replace (data ,"drop","",1,-1,1)
data = Replace (data ,"create","",1,-1,1)
data = Replace (data ,"modify","",1,-1,1)
data = Replace (data ,"rename","",1,-1,1)
data = Replace (data ,"alter","",1,-1,1)
data = Replace (data ,"cast","",1,-1,1)
guvenlik=data
end function
%>

<%
If trim(guvenlik(request.form("kullanici_adi")))="" then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Kullanıcı
adınızı yazınız!<br><br><a href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri Dön</u></a></b></center>"
response.end
end if

If trim(guvenlik(request.form("sifre")))="" then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Şifrenizi
yazınız!<br><br><a href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri
Dön</u></a></b></center>"
response.end
end if
%>
<%
Set rs = Server.CreateObject("Adodb.Recordset")
Sorgu = "select id, kullanici_adi, sifre from uyeler where kullanici_adi =
'" &
guvenlik(request.form("kullanici_adi")) & "' and sifre = '" &
guvenlik(Request.form
("sifre")) & "'"
rs.Open Sorgu, Baglanti, 1, 3
If rs.BOF And RS.EOF Then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Kullanıcı
adınız ya da şifreniz yanlıştır!<br><br><a
href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri Dön</u></a></b></center>"
Else
Session("durum") = "giris_yapmis"
Session("id") = rs("id")
Session("kullanici_adi") = rs("kullanici_adi")
Response.Cookies("TekTech")("kullanici_adi") = Request.Form("kullanici_adi")
Response.Cookies("TekTech")("sifre") = Request.Form("sifre")
Response.Cookies("TekTech").Expires = Now()+15
Response.Redirect "giris_sayfasi.asp"
End If
%>


giris_sayfasi.asp ;

Kod: [Seç]
<%
Set baglanti = Server.CreateObject("ADODB.Connection")
baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/db.mdb")
%>

<% if Session("durum")="giris_yapmis" then %>

<%
Set rs = Server.CreateObject("Adodb.Recordset")
id = Session("id")
Sorgu = "Select * from uyeler where id= " & id
rs.Open Sorgu, Baglanti, 1, 3
if rs.eof then
Response.Write "<center>Üye bilgisi bulunmamaktadır!</center>"
else
%>
<b>Kullanıcı Adı:</b> <%=rs("kullanici_adi")%>
<a href="cikis_yap.asp"><b>ÇIKIŞ YAP</b></a>
<% end if %>

<%else %>
</p>
<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Lütfen giriş yapınız!<br><br><a href='giris.asp'><FONT color=#e45f0e><u>Anasayfa</u></a></b></center>
<% end if %>

cikis_yap.asp ;

Kod: [Seç]
<%
Session("durum")=""
Response.Cookies("TekTech")("kullanici_adi")=""
Response.Cookies("TekTech")("sifre")=""
Session("id")=""
%>
<% Response.Redirect "giris.asp" %>


Yukarıdan da anlaşılacağı üzere üyelik sistemi yapımı oldukça kolaydır. Fakat, burada önemli olan session ve cookie ‘yi en iyi şekilde kullanabilmektir. Session sunucu tarafında, cookie ise istemci tarafında tutulur. Ayrıca, giris_kontrol.asp adlı dosyada yer alan sql tümcesinde uyeler adlı tablodaki tüm sütunları seçip verileri belleğe almak yerine yalnızca o anda ihtiyacım olan sütunları seçtirdim. Bunu yapmanın sebebi, üye girişinin daha hızlı olmasıdır. Örneğin, veritabanımızda 500 üyemiz var. Uyeler tablomuzda id, kullanici_adi, sifre gibi sütunların yanı sıra; üyenin adı, soyadı veya buna benzer bilgilerini içeren sütunlar olsun. Üye girişinde kullanıcı adı ve şifre eşleştirmesi yapılırken üyenin adı ve soyadı bir işimize yaramayacaktır. Üye girişinde işimize yarayacak olan tablolar id, kullanici_adi ve sifre ‘dir. Üye girişinde bu yöntemi kullanmak, üye girişlerinde ki ağırlığı hafifletecektir.
Bir konuya daha değinmek istiyorum. Kullanıcı adı ve şifre form kutucuklarının kontrollerini yalnızca javascript kullanarak yapmak sakıncalıdır. Ziyaretçi bu kutucukların bulunduğu sayfayı kendi bilgisayarına kaydettikten sonra javascript kontrollerinin bulunduğu satırları silip formda ki boş bilgileri sayfaya post edebilir. Bu da doğal olarak ziyaretçinin sayfada hata ile karşılaşmasına neden olacaktır. Yukarıda vermiş olduğum örnekte javascript kontrolü yerine asp kodları ile kontrol yapılmaktadır. Ayrıca; giris_kontrol.asp adlı sayfanın en başında görmüş olduğunuz guvenlik adlı fonksiyon, üye girişlerinde sql injection ‘u önlemek ve html kodlarını pasif hale getirmek için kullanılmıştır.

Alıntıdır ("Okan YILMAZ")
Tema Reklam - Tanıtım.

Çevrimdışı sadya

  • İleti: 1
  • Puan: 0
-Asp Dersleri ve Örnekleri
« Yanıtla #9 : Ekim 28, 2007, 17:54:30 ÖS »
paylaşım için teşekkürler

 

Benzer Konular

  Konu / Başlatan Yanıt Son İleti
0 Yanıt
3595 Gösterim
Son İleti Ağustos 18, 2008, 11:45:37 ÖÖ
Gönderen: jarni
8 Yanıt
7305 Gösterim
Son İleti Ağustos 26, 2008, 18:34:10 ÖS
Gönderen: jarni
0 Yanıt
1808 Gösterim
Son İleti Şubat 16, 2010, 11:27:01 ÖÖ
Gönderen: asumanorhun
0 Yanıt
1908 Gösterim
Son İleti Mart 03, 2010, 20:56:59 ÖS
Gönderen: burajan
8 Yanıt
692 Gösterim
Son İleti Mayıs 05, 2012, 19:34:48 ÖS
Gönderen: aethram