ana sayfa hakkında forum (yeni) rss takibi reklam yerleşimi iletişim giriş

İçerik Kategorileri

  1. Active Server Pages
    1. Temel Konular [13]
    2. Genel İçerikler [12]
    3. Nesne Kütüphanesi [0]
    4. Form Elemanları [4]
    5. Döngü İfadeleri [3]
    6. Veritabanı İşlemleri [7]
    7. Fonksiyonlar [2]
    8. Hatalar ve Çözümleri [16]
  2. ASP Hızlı Referans
    1. TextStream Nesnesi [7]
    2. Response Nesnesi [1]
    3. Request Nesnesi [1]
    4. Application Nesnesi [1]
    5. Session Nesnesi [4]
    6. Server Nesnesi [0]
    7. FSO Nesnesi [4]
  3. Browser Scripting
    1. VBScript [4]
    2. SQL Sorgulama [4]
  4. MySQL [0]
  5. Uygulamalar
    1. Hazır Fonksiyonlar [3]
    2. Hazır Kodlar [9]
    3. Script Algoritmaları [3]
    4. Script Geliştiriyoruz [2]

Sitede Ara


Hosting Sponsorumuz

Haz

24

AlışVeriş Scripti Yapıyoruz

Script Geliştiriyoruz17 yorum6819 izlenimBerkeCetin

Bu dersimizde basit olarak bir alışveriş sitesi yapıcağız.


Uyarı: Bu yazı orta düzey bilgi gerektiren bir yazıdır!
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"
adında 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 tablomuza 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
%>

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:

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>

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:

<!-- #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
%>

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ı:

<!-- #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>

sepetim.asp de bitti sırada ürünlerimizi çıkaracağımız sepetten_cikart.asp var :

<!-- #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ı"
%>

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:

<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>

siparis_kayit.asp :

<!-- #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"
%>

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:

<!-- #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
%>

giris.asp :

<form action="kontrol.asp" method="post" />
şifreyi Girin : <br />
<input type="password" name="sifre" />
<input type="submit" value="Giriş" />
</form>

Kontrol.asp :

<% 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
%>

Evet şimdi yöneticinin detaylara bakabilmesi için siparis_detay.asp 'yi oluşturalım:

<!-- #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
%>

Dersimiz sonunda bitti :) sağlıcakla kalın!

Etiketler  :  recordset   with   response   if   session  

İçeriği takip etSayfayı YazdırPermalink

17 yorum var

#253.-Cem Sevinç-29 Haziran 2007 Cuma

güzel bir anlatım bilgi için tskler. ;)

#291.-Sirsirii-21 Temmuz 2007 Cumartesi

yegen sağolasan. eyi anlattın. ama ben asp bilmem php bilerem. nasıl yapacam şimdi bunları ?

#315.-Metehan KABALCI-05 Ağustos 2007 Pazar

Üstad teşekkürler. Bu alışveriş sayfa hazırlanması ile ilgili verdiğin bilgiler çok yararlı oldu.

#353.-Gökçer-04 Ekim 2007 Perşembe

veritabanınıda verseydiniz kötü olmazdı :( böle bi imkan varsa şimdiden tşkler.

#362.-hakan-05 Ekim 2007 Cuma

seni aspindir.com adresine yönlendirebilirim. bu sitede çok detaylı örnekler, dosyalar mevcut. kolay gelsin.

#379.-Ercan Kovan-23 Ekim 2007 Salı

Peki bu çalışmada sipariş esnasında sepet tablosuna eklenen veriler ne olacak? Sipariş tamamlandığında veya yarım bırakılıp site kapatıldığında veritabanında gereksiz şişme olmaması için o ana kadar girilmiş olan verilerin silinmesi sağlanamaz mı? Ya da tüm bunlara gerek kalmadan sadece "session" fonksiyonu kullanılarak sipariş verene kadar geçen ürün ekleme kısmı ve sepet  gösterilmesi işi halledilemez mi? Birde sepetteki ürünlerin toplam fiyatı sepette gösterilse daha uygun olmaz mı? Belki çok karışık olmasın diye yada tembelliğe sevk etmemek için böyle yaptınız ama yeni öğrenenlerin yol haritası olması bakımından bu detaylarla tekrar derleyip makaleyi güncellerseniz memnun olacak kişi sayısı çok olacaktır. ıyi çalışmalar.

#409.-Fatih Gülce-17 Kasım 2007 Cumartesi

Çok saolun asp yi yeni yeni öğrenmeye çalışıyorum tek yardımcım google bunuda biliyorum ama boyle sitelerde bilgi paylaşımı oldukça eminim biz türkler şu hintlileri geçicez lutfen bu scripti ve diğer verilecek olanları sonuna kadar geliştirelim arkadaşlar anlatım için cok teşekkür ediyorum...
Ercan Kovan arkadaşımızın anlatmak istediklerine katılıyorum faydalı gereksinimler olarak gorunyorum umarım bu script hakkında güncellemeler gelir...

#439.-Kerem Yılmaz-16 Aralık 2007 Pazar

Arkadaşlar merhaba;

burda anlatılan sepet sistemini kendi siteme entegre ettim.. sorunsuz bir şekilde kullanıyorum.. bunun için emeği geçen herkese teşekküredeiyorum.. yanlız ihtiyaç duyduğum tek şey müşteri siteye login oluyor, alışverişini yapıyor ve sipariş formu aracılığı ile siparişini tamamlıyor.. Buraya kadar hiç bir problem yok.. Müşteri sipariş formunu doldurup işlemlerini bitirdikten sonra alışveriş sepetini otomatik olarak nasıl boşaltabilirim bu konuda yardımınıza ihtiyacım var.. örnek olarak ben kendi kullanıcı adımla login olup alışveriş yapıyorum.. form aracılığı ile siparişimi tamamlıyorum ve pencereyi kapatım yeni bir explorer açıp yeniden login olduğumda sepet otomatikmen boş gözüküyor.. çünkü farklı session_id alıyorum.. işte bunu logout olmadan ve yeni pencereye geçmeden nasıl yapabilirim. teşekkürediyorum iyi çalışmalar kolay gelsin

Saygılarımla
Kerem Yılmaz.

#455.-cennet can-08 Ocak 2008 Salı

asp 'de acemiyim bana lütfen yardım edin.şu kodları yazdım bunu siteme nasıl ekliyecem ve front page'deki gibi görüntüyü tam olarak görebilirmiyim yani nasıl olduğunu görebilirmiyim.

#460.-sinan-11 Ocak 2008 Cuma

cennet can asp sunucu tabanlı olduğu için html gibi goremezsin ancak sayfaları kaydedip localde html kodlarını görürsün

#467.-sinan-12 Ocak 2008 Cumartesi

frontpage dremwaver de gosteriymiyo bildigim kadarıyla kodları al ve sayfana #include edeceksin.

#475.-cennet-23 Ocak 2008 Çarşamba

öncelikle verdiğiniz bilgiler çok yararlı teşekkür ederim. size sorum ben frontpage'de site yaptım ziyaretçi defteri asp ile yaptım yaptığım sitede alış veriş yapılacak şimdi sizin söylediklerinizi not defterine kaydettim access'te de ürün shf'sini oluşturdum. şimdi bunu yayınladığımda çalışacak mı yada tam olarak nasıl görebilirim(sepete at ne zaman görecem) anlatırsanız sevinirim teşekkürler. yani sırasıyla başka ne yapmam gerekiyo not defterine kaydettikten sonra.

#476.-sinan-24 Ocak 2008 Perşembe

Uyarı: Bu yazı orta düzey bilgi gerektiren bir yazıdır!

arkadaşlar  bu uyarı okumadan geçmeyin.
eğer fazla bir bilgi yok ise lütfen uğraşmayın.
hevesininizi kırmak için söylemiyorum.
temel şeyleri öğrenin diğer yazılardan sonra bu yazıya dönün.

#552.-bybeceren-31 Mart 2008 Pazartesi

bir site yapıyorum ürünleri manuel olrak yerleştiriyorm her ürünün altında siparis ver butonu var bunu ben nasıl ekleyecem siteme

#578.-sabiano-18 Nisan 2008 Cuma

gerçekten harika bunu geliştiriyorum epey bi geliştirmne yaptım bu dersdekilere ek olraka tskr edrim Emeğe Saygı..

#586.-djwebber-23 Nisan 2008 Çarşamba

Gerçekten Birşeyler öğrenme amaçlı arakaşlarımıza yardımcı oluyorsunuz emek harcıyorsunuz  teşşekkurler emeğe saygı

#593.-husrev.live-02 Mayıs 2008 Cuma

gerçekten çok güzel bir anlatım ama bence başka scriptlere de yer verilmeli mesela haber scripti,forum veya mesaj panosu scripti, portal scripti... bunlar da olursa çok güzel olur başarılar..


Bu içeriğe yorum yazın

BBCode ve Emotions desteği aktif. Yorumunuz onaylandıktan sonra gösterilecektir.

Bu yazı ile benzer içeriğe sahip olabilecek yazılar

  1. Ziyaretçi Defteri Yapımı
  2. Sayaç Yapımı
  3. With (Kullanımı) ile Nesnelerin Yönetimi
  4. Err Nesnesi
  5. Veritabanında arama yapmak
  6. Response Nesnesi
  7. Cookies Nesnesiyle İlgili Örnek Uygulama
  8. Bir Sayının Faktöriyeli
  9. Cdonts Mail Bileşeni ile Mail Göndermek
  10. If...Then...Else...End If
  11. Geçersiz Null Kullanımı Hatası
  12. Expected 'End' 800a03f6
  13. Err Nesnesi
  14. şifreli Sayfa Oluşturma
  15. Cookies Nesnesiyle İlgili Örnek Uygulama
  16. Session nesnesi hakkında
  17. Session kullanımı
  18. Açılan session nesnesinin kapatılması
  19. Session Nesnesinin Geçerlilik süresi
  20. şifreli Sayfa Oluşturma

Yazının aktif olduğu kategoriye eklenmiş son yazılar

  1. Ziyaretçi Defteri Yapımı

Aspogren.net web sitesi SiDEnet sunucularından yayınlanmaktadır.

eXTReMe Tracker