Jump to content

ASP - Alışveriş Scriptı Yapma - Adım adım


Recommended Posts

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,3
if Rs.eof then
Response.Write "Kayıt Yok"
End if
Do while not Rs.eof 'Tum kayıtları yazdırabilmek icin dongumuzu baslattık
with 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ık
End with
Rs.MoveNext
Loop'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ık
if id = "" or not isnumeric(id ) then 'eğer id değeri boşsa yada bir sayı değilse
Response.Write "Güvenlik Duvarı" 'Güvenlik Duvarı yazısı yazdırdık
Response.End 'Bu bir güvenlik önlemidir kötü niyetli kişiler eğer bu kontrolu yapmazsanız sitenizi hackliyebilirler
End if
Set Rs = Server.CreateObject("ADODB.RecordSet" ) 'urunumuzle ilgili bilgileri alabilmek için RecordSetimizi açtık
sql = "Select * from urun where id = "&id&" " 'Sql kodumuz
Rs.Open sql,baglanti,1,3
if Rs.eof then 'Eger kayıt bulunamzsa
Rsponse.Write "Böyle bir ürün bulunmamaktadır" 'Böyle bir ürün bulunmamaktadır yazısı yazdırdık
Response.End
End if
Set Rs2 = Server.CreateObject("ADODB.RecordSet" )'urunumuzu sepete atabilmek için RecordSetimizi açtık
sql = "Select * from sepet" 'sql kodumuz
Rs2.open sql,baglanti,1,3
Rs2.AddNew 'sepet adlı tablomuza yeni bir kayıt ekledik
Rs2("Session_id" ) = Session.SessionID 'tablomuzdaki Session_id adlı alanımızın değerini oturumuz idmiz oalrka belirledik
Rs2("urun_id" ) = Rs("id" ) 'tablomuzdaki urun_id adlı alanımızın değerini ilk tablomuzdaki id alanının değeri olarka belirledik
Rs2.Update
Response.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 urunleri

sipariş 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.SessionID
Set Rs = Server.CreateObject("ADODB.RecordSet" )
Sql = "Select * from sepet where session_id = '"&Session_id&"' "
Rs.Open sql,baglanti,1,3
if Rs.Eof Then
Response.Write " Hiç Bir Ürün Bulunamadı"
End if
Do while not Rs.eof
Set Rs2 = Server.CreateObject("ADODB.RecordSet" ) 'urunumuzle ilgili bilgileri alabilmek için RecordSetimizi açtık
sql = "Select * from urun where id = "&Rs("urun_id" )&" " 'Sql kodumuz
Rs2.Open sql,baglanti,1,3
with 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 with
Rs.MoveNext
Loop
%>
<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ık
if id = "" or not isnumeric(id ) then 'Güvenlik kontrolu
Response.Write "Güvenlik Duvarı!"
End if
Session_id = Session.SessionID
Set Rs = Server.CreateObject("ADODB.RecordSet" ) 'RecordSetimizi açtık
sql = "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ık
Rs.Open sql,baglanti,1,3
Response.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 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:

[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ık
tel = Request.Form("tel" )
adres = Request.Form("adres" )
if ad-soyad = "" or tel = "" or adres = "" then 'eğer form değerleri boşsa
Response.Write "Boş Alan Bıraktınız" 'boş alan bıraktınız yazdırdık
Response.End
End if
Set Rs = Server.CreateObject("ADODB.RecordSet" )
sql = "Select * from siparis"
Rs.Open sql,baglanti,1,3
Rs.AddNew 'Yeni kayıt ekledik
Rs("ad-soyad" ) = ad_soyad
Rs("tel" ) = tel
Rs("adres" ) = adres
Rs("session_id" ) = Session.SessionID
Rs.Update
Response.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 evetse
Set Rs = Server.CreateObject("ADODB.RecordSet" )
sql = "Select * from siparis order by id desc;"
Rs.Open sql,baglanti,1,3
Response.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 verdik
Else ' değilse
Response.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ık
if sifre = "" then ' formun doldurulup doldurulmadığını kontrol ediyoruz
Response.Write "Sifre Girmediniz!"
End if
gsifre = "123456" 'giriş sifresini burdan değiştirebilirsiniz
if sifre = gsifre then 'eğer girilen şifre giriş şifresine eşitse
Session("giris" ) = "evet" 'giriş oturumunun değeri evet olcak
Response.Redirect "yonetici.asp" 'yonetim sayfasına yönlendirdik
else 'değilse
Response.Redirect "yonetici.asp" 'giriş oturumuna değer vermeden yonetim sayfasına yönlendirdik
End 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ık
if id = "" or not isnumeric(id ) then 'Güvenlik kontrolu
Response.Write "Güvenlik Duvarı!"
End if
Set Rs = Server.CreateObject("ADODB.RecordSet" ) 'RecordSetimizi açtık
sql = "Select * From siparis where id = "&id&" " 'sql kodumuz
Rs.Open sql,baglanti,1,3
with 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 with

Set Rs2 = Server.CreateObject("ADODB.RecordSet" )'RecordSetimizi açtık
sql = "Select * from sepet where session_id='"&Rs("session_id" )&"' " 'sql kodumuz
Rs2.Open sql,baglanti,1,3
Do 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,3
Response.Write " "&Rs3("ad" )&" <br />"'bilgileri sıraladık
Rs2.MoveNext
Loop 'dongumuzun sonu
%>
[/CODE]

[u]Berke'ye teşekkürler.[/u]

Link to comment
Share on other sites

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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...