Uyarı Bu yazı orta düzey bilgi gerektiren bir yazıdır!
Bu dersimizde basit olarak bir alışveriş sitesi yapıcağız.Baya uzun bir ders olacak sabırla okursanız faydalı şeyler
öğrendinizi görüceksiniz.Yazıma başlamadan önce veritabanıyla ilgili dersleri okumanızı öneriyorum."db.mdb"
diye bir veritabanımımız olsun içine urun adında bir tablo oluşturalım.Tablomuzun alanları :
id (otomatik sayı )
ad(not )
fiyat (sayı ) olsun ve tablomzua bir kaç kayıt girin.Ana sayfamızda bu tablomuzdaki kayıtları listelicez.Veritabanı bağlantımızı
"db.asp" olarak kaydedelim:
Kod:
<%db = Server.MapPath("db.mdb" )Set baglanti = Server.CreateObject("ADODB.Connection" )baglanti.Open "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & db & ";" veritabanı bağlantımızı yaptık%>
Veritabanı bağlantımızı her sayfamızda yeniden yazmak yerine include etmek sitemizin performansını arttıracaktır.
Ana Sayfamız ise Şöyle olacak:
Kod:
Ana Sayfa <br /><!-- #include file="db.asp" --><%Set Rs = Server.CreateObject("ADODB.RecordSet" )sql = "Select * from urun order by id desc;"Rs.Open sql,baglanti,1,3if Rs.eof thenResponse.Write "Kayıt Yok"End ifDo while not Rs.eof Tum kayıtları yazdırabilmek icin dongumuzu baslattıkwith Response.Write " Urun Ad: "&Rs("ad" )&" " : boslugun ascii kodudur.Urun adımızı yazdırdık.Write "Urun Fiyat: "&Rs("fiyat" )&" YTL " Urun fiyatını yazdırdık.Write "<a href=""sepete_at.asp?id="&Rs("id" )&""">Sepete At</a> <br />" sepete_at.asp ye link verdik.Alacağımız urunu belirleyebilmek içinde urunun idsini sepete_at.asp sayfamıza yolladıkEnd withRs.MoveNextLoopDongumuzu sonlandırdık%><br /><a href="yonetici.asp">Yönetici Girişi</a>
Ana Sayfamız tamamlandı.Şimdi sıra sepete_at.asp de.Bunun için veritabanımızda sepet adında bir tablo oluşturalım.Tablonun Alanları:
id (otomatik sayı )
Session_id(not )
urun_id (sayi ) şeklinde olacak.Artık sepete_at.asp sayfamızı oluşuturabiliriz
Kod:
<!-- #include file="db.asp" --><%id = Request.QueryString("id" ) ana sayfamızdan yolladığımız id değerini id değişkenine atadıkif id = "" or not isnumeric(id ) then eğer id değeri boşsa yada bir sayı değilseResponse.Write "Güvenlik Duvarı" Güvenlik Duvarı yazısı yazdırdıkResponse.End Bu bir güvenlik önlemidir kötü niyetli kişiler eğer bu kontrolu yapmazsanız sitenizi hackliyebilirlerEnd ifSet Rs = Server.CreateObject("ADODB.RecordSet" ) urunumuzle ilgili bilgileri alabilmek için RecordSetimizi açtıksql = "Select * from urun where id = "&id&" " Sql kodumuzRs.Open sql,baglanti,1,3if Rs.eof then Eger kayıt bulunamzsaRsponse.Write "Böyle bir ürün bulunmamaktadır" Böyle bir ürün bulunmamaktadır yazısı yazdırdıkResponse.EndEnd ifSet Rs2 = Server.CreateObject("ADODB.RecordSet" )urunumuzu sepete atabilmek için RecordSetimizi açtıksql = "Select * from sepet" sql kodumuzRs2.open sql,baglanti,1,3Rs2.AddNew sepet adlı tablomuza yeni bir kayıt ekledikRs2("Session_id" ) = Session.SessionID tablomuzdaki Session_id adlı alanımızın değerini oturumuz idmiz oalrka belirledikRs2("urun_id" ) = Rs("id" ) tablomuzdaki urun_id adlı alanımızın değerini ilk tablomuzdaki id alanının değeri olarka belirledikRs2.UpdateResponse.Write "Urun Sepetinize Eklendi" Urun Sepetinize Eklendi yazısı yazdırdık.Response.Write "<br />Sepetinize bakmak için <a href=""sepetim.asp"">tıklayın</a>" Sepetimizi kontrol etmek için sepetim.asp ye link verdik%>
Geriye 4 tane sayfamız kaldı ilki sepetimizi kontrol edeceğimiz sayfa ikincisi sepetimizden urun cıkaracagımız sayfa ucuncusu urunleri
sipariş edeceğimiz sayfa sonuncusu ise site sahibinin sipariş edilen urunleri göreceği sayfa.İşte sepetim.asp sayfamızın kodları:
Kod:
<!-- #include file="db.asp" --><%Session_id = Session.SessionIDSet Rs = Server.CreateObject("ADODB.RecordSet" )Sql = "Select * from sepet where session_id = "&Session_id&" "Rs.Open sql,baglanti,1,3if Rs.Eof ThenResponse.Write " Hiç Bir Ürün Bulunamadı"End ifDo while not Rs.eofSet Rs2 = Server.CreateObject("ADODB.RecordSet" ) urunumuzle ilgili bilgileri alabilmek için RecordSetimizi açtıksql = "Select * from urun where id = "&Rs("urun_id" )&" " Sql kodumuzRs2.Open sql,baglanti,1,3with Response.Write " Urun Ad: "&Rs2("ad" )&" " .Urun adımızı yazdırdık.Write "Urun Fiyat: "&Rs2("fiyat" )&" " Urun fiyatını yazdırdık.Write "<a href=""sepetten_cikart.asp?id="&Rs2("id" )&""">Sepeten Çıkart </a> <br />"sepetten_cikart.asp ye link verdik.End withRs.MoveNextLoop%><br /><a href="siparis.asp">Ürünleri Sipariş Et</a>
sepetim.asp de bitti sırada ürünlerimizi çıkaracağımız sepetten_cikart.asp var :
Kod:
<!-- #include file="db.asp" --><%id = Request.QueryString("id" ) Diğer sayfamızdan gelen di değerini id değişkenine atadıkif id = "" or not isnumeric(id ) then Güvenlik kontroluResponse.Write "Güvenlik Duvarı!"End ifSession_id = Session.SessionIDSet Rs = Server.CreateObject("ADODB.RecordSet" ) RecordSetimizi açtıksql = "Delete from sepet where urun_id = "&id&" and session_id = "&Session_id&" " Aynı ürünü iki kişininde sepete atma olsaılığ olduğundan oturum idsi kontrolude yaptıkRs.Open sql,baglanti,1,3Response.Write "Urun Sepepetten Çıkarıldı"%>
Geldik urunlerimizi sipariş edeceğimiz sayfaya bunun için bir form hazırlıyacağız ziğariş edenin adı soyadını
adresini
ve oturum idsini
veritabanına kaydettireceğiz.Bu yüzden siparis adında yeni bir tablo oluşturlım.Tablomuzun alanları : id (otomatik sayı )
ad-soyad(not )
adres(not )
tel(sayi )
session_id(not ).Formumuzun bulunduğu siparis.asp sayfamız:
Kod:
<form action="siparis_kayit.asp" method="post"/><label for="ad-soyad">Adınız Soyadınız:</label><input type="text" name="ad-soyad" /><br /><label for="tel">Telefonunuz:</label><input type="text" name="tel" /><br /><label for="adres">Adresiniz:</label><input type="text" name="adres" /><br /><input type="submit" value="Sipariş Et" /></form>
Kod:
<!-- #include file="db.asp" --><%ad_soyad = Request.Form("ad-soyad" ) Form değerlerimizi değişkenlere aktardıktel = Request.Form("tel" )adres = Request.Form("adres" )if ad-soyad = "" or tel = "" or adres = "" then eğer form değerleri boşsaResponse.Write "Boş Alan Bıraktınız" boş alan bıraktınız yazdırdıkResponse.EndEnd ifSet Rs = Server.CreateObject("ADODB.RecordSet" )sql = "Select * from siparis"Rs.Open sql,baglanti,1,3Rs.AddNew Yeni kayıt ekledikRs("ad-soyad" ) = ad_soyadRs("tel" ) = telRs("adres" ) = adresRs("session_id" ) = Session.SessionIDRs.UpdateResponse.Write "Siparişiniz Alınmıştır"%>
Evet makalemizde sonlara yaklaşıyoruz geriye sadece site sahibinin siparişleri görmesi kaldı.Yönetici girişi yapılırken sifre sorulacak.
Şifreli sayfa oluşturmayıda geçen derslerde anlatmıştım.Konuya buradan ulaşabilirsiniz.
yonetici.asp:
Kod:
<!-- #include file="db.asp" -->Yonetici <br /><%if Session("giris" ) = "evet" then eğer giriş oturumunun değeri evetseSet Rs = Server.CreateObject("ADODB.RecordSet" )sql = "Select * from siparis order by id desc;"Rs.Open sql,baglanti,1,3Response.Write " <a href=""siparis_detay.asp?id="&Rs("id" )&"""> "&Rs("ad-soyad" )&" </a> <br />" sipariş verenin adını yazdırdık adına tıklanılınca da detayalrın açılması için link verdikElse değilseResponse.Write "<a href=""giris.asp"">Giriş Yapmalısınız</a>" giris.asp dosyasına link verdik.End if%>
giris.asp
Kod:
<form action="kontrol.asp" method="post" />Şifreyi Girin : <br /><input type="password" name="sifre" /><input type="submit" value="Giriş" /></form>
Kontrol.asp
Kod:
<% sifre = Request.Form("sifre" ) formumuzun değerini sifre değişkenine atadıkif sifre = "" then formun doldurulup doldurulmadığını kontrol ediyoruzResponse.Write "Sifre Girmediniz!"End ifgsifre = "123456" giriş sifresini burdan değiştirebilirsinizif sifre = gsifre then eğer girilen şifre giriş şifresine eşitseSession("giris" ) = "evet" giriş oturumunun değeri evet olcakResponse.Redirect "yonetici.asp" yonetim sayfasına yönlendirdikelse değilseResponse.Redirect "yonetici.asp" giriş oturumuna değer vermeden yonetim sayfasına yönlendirdikEnd if%>
Evet şimdi yöneticinin detaylara bakabilmesi için siparis_detay.asp yi oluşturalım:
Kod:
<!-- #include file="db.asp" --><%id = Request.QueryString("id" ) Diğer sayfamızdan gelen id değerini id değişkenine atadıkif id = "" or not isnumeric(id ) then Güvenlik kontroluResponse.Write "Güvenlik Duvarı!"End ifSet Rs = Server.CreateObject("ADODB.RecordSet" ) RecordSetimizi açtıksql = "Select * From siparis where id = "&id&" " sql kodumuzRs.Open sql,baglanti,1,3with Response.Write "Ad-Soyad:"&Rs("ad-soyad" )&" <br />" bilgileri sıraladık.Write "Telefon:"&Rs("tel" )&" <br />".Write "Adres:"&Rs("adres" )&" <br />".Write "<br />Aldığı Ürünler: <br />"End withSet Rs2 = Server.CreateObject("ADODB.RecordSet" )RecordSetimizi açtıksql = "Select * from sepet where session_id="&Rs("session_id" )&" " sql kodumuzRs2.Open sql,baglanti,1,3Do while not Rs2.eof kayıtların hepsini sıralyabilmek için dongumuzun başlangıcıSet Rs3 = Server.CreateObject("ADODB.RecordSet" )sql = "Select * from urun where id = "&Rs2("urun_id" )&" "Rs3.Open sql,baglanti,1,3Response.Write " "&Rs3("ad" )&" <br />"bilgileri sıraladıkRs2.MoveNextLoop dongumuzun sonu%>
PHP- Kodu:
Alıntıdır