Muallim-i Ali Posted June 25, 2007 Share Posted June 25, 2007 Dersi Hazırlayan : Berke 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: <%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%>[/CODE]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:[CODE]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.MoveNextLoop'Dongumuzu sonlandırdık%><br /><a href="yonetici.asp">Yönetici Girişi</a>[/CODE]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:[CODE]<!-- #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%>[/CODE]Geriye 4 tane sayfamız kaldı ilki sepetimizi kontrol edeceğimiz sayfa ikincisi sepetimizden urun cıkaracagımız sayfa ucuncusu urunlerisipariş edeceğimiz sayfa sonuncusu ise site sahibinin sipariş edilen urunleri göreceği sayfa.İşte sepetim.asp sayfamızın kodları:[CODE]<!-- #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>[/CODE]sepetim.asp de bitti sırada ürünlerimizi çıkaracağımız sepetten_cikart.asp var :[CODE]<!-- #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ı"%>[/CODE]Geldik urunlerimizi sipariş edeceğimiz sayfaya bunun için bir form hazırlıyacağız ziğariş edenin adı soyadını, adresini , ve oturum idsiniveritabanı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:[CODE]<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>[/CODE]siparis_kayit.asp :[CODE]<!-- #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"%>[/CODE]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 : http://www.aspogren.net/kaynak-oku/89/sifreli-sayfa-olusturma.html ulaşabilirsiniz.yonetici.asp:[CODE]<!-- #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%>[/CODE]giris.asp :[CODE]<form action="kontrol.asp" method="post" />Şifreyi Girin : <br /><input type="password" name="sifre" /><input type="submit" value="Giriş" /></form>[/CODE]Kontrol.asp :[CODE]<% 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%>[/CODE]Evet şimdi yöneticinin detaylara bakabilmesi için siparis_detay.asp 'yi oluşturalım:[CODE]<!-- #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%>[/CODE][u]Berke'ye teşekkürler.[/u] Link to comment Share on other sites More sharing options...
cumman Posted June 28, 2007 Share Posted June 28, 2007 database tablo ve değişkenlerini de verseydin daha yararlı olabilirmiş. eğer elinde varsa ver yoksa ben çıkarayım koddan. Link to comment Share on other sites More sharing options...
Muallim-i Ali Posted June 28, 2007 Author Share Posted June 28, 2007 malesef elimde yok.o kısmı halledermisin sana zahmet. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.