Basit bir Alis-Veris Sepeti
Cok basit ama fonksiyonel bir “Alis-Veris Sepeti” uygulamasi yazalim.Programimizin, modern bir “elektronik sepetin” butun gereklerini yerine getirmesine (urunu eklemek,cikarmak,goruntulemek vb.) ozen gosterelim…
Egitim amacli yazilan bu uygulama kucuk bir alisverisi sitesi icin kolaylikla temel bir alt program olarak alinip, cok kisa zamanda bunun uzerine bazi ek fonksiyonlar ve online olarak, kredi kartindan hesaba para gecirilmesi kismi eklendiginde guclu bir uygulamaya donusebilir…
Program toplam 5 dosyadan olusmaktadir.Programlarin icinde oldukca fazla yorum yapilarak konunun anlasilmasi saglanmaya calisilmistir.
site_kut.inc.php
Yazacagimiz uygulama icin bir kutuphane dosyasi islevi gorecek…
//Urunlerimizin icinde saklanacagi degiskeni yaratiyorum…
//Bu bir dizi degisken:$urun_listesi
$urun_listesi = array();
//Text dosyasindan urunlerimizi alip onlari bu yeni yaratigim dizinin icine
//yukleyecek fonksiyonu yaziyorum…
function UrunleriYukle() {
//Fonksiyonun disinda yaratilmis bir degiskene fonksiyonun icinden
//ulasmak istedigim icin ($urun_listesi degiskeni bos bir dizi olarak yukarida yaratilmisti)
//global deklaresini kullaniyorum…
global $urun_listesi;
//Text dosyamizin adi.Bu dosya icinde her satirda bir urun olacak sekilde tanimlamayi
//zaten programi yazmadan once yapmistim…
$dosyaadi = ‘urun.txt’;
//Dosyay baglanti aciyorum.Onune konulan @ isareti ile bir hata olusursa
//bunu ekrana yazmamasini soyluyorum…
$dosyaya_baglanti = @fopen($dosyaadi, “r”);
//while dongusunu kullanarak text dosyasi icinde bulunan butun satirlar,yarattigim dizi
//icinde birer urunu temsil edecek sekil yer alan kadar dongu devam ediyor.
//Burada kullanilan fgets dosyayi satir satir , her satirda max 1024 byte olacak sekilde okuyor…
while ($satir = fgets($dosyaya_baglanti, 1024)) {
//Her satirda yer alan uzun ifade | karekteri ile paracalanarak list komutunda gosterilen siraya gore
//degiskenlerin icine ataniyor…
list($id, $isim, $aciklama, $fiyat) = explode(‘|’, $satir);
//Burada trim () fonksiyonu yardimiyla $id alanininda yer alablcek beyaz bosluklar (Mesela ben text dosyasina
//yazarken dikkat etmeden ifadeden sonra bir kac bosluk birakmis olabilirim…) temizleniyor.
$id = trim($id);
//Tum bilgiler dizinin icine yukleniyor.Diziyi $id alanini index olarak kullanarak indexledim.
//Bu nedenle onemli olan nokta text dosyasinin icinde urunleri tanimlaraken birden fazla urune ayni kodu
//verme hakkiniz bulunmuyor…
$urun_listesi[$id] = array (“isim” => $isim, “aciklama” =>$aciklama, “fiyat” => $fiyat);
}
//Dosyaya acilan baglanti kapatiliyor…
@fclose($dosyaya_baglanti);
}
?>
urun.txt
Icinde urunlerimizin yazili oldugu text dosyasi…
KOD101|Bisiklet|Dunyanin en saglikli nakil araci…|125
KOD102|Oyuncak Telsiz|2 Km ye kadar etkili walkie-talkie|380
sepet.php
Program icin ana dosya.PHP’ye yeni baslayanlarin bile anlamakta zorlanmayacaklari cok basit yapili bir program…
//
//sepet.php:ANA Dosya…
//
require ‘site_kut.inc.php’;
//Oturumu kaydet…
session_register(‘sepet’);
//Sepeti baslat…
if (!isset($sepet[urun_sayisi])) {
$sepet = array(“urun_sayisi” => 0, “urunler” => array());
}
//Site kutuphanesi doyasinda yazdigimiz UrunleriYukle () fonksiyonunu cagir…
//Boylece butun urunler dizimiz icerisine yuklensin…
UrunleriYukle();
?>
Serkan’in Oyuncakci Dukkanina Hosgeldiniz :)
if ($sepet[urun_sayisi]) { //sepetin icinde gosterilebilcek bir urun varsa,
?>
Sepetinizdeki Urunler:
//Sepeti icindeki urunleri donguye sok…
//Boylece her defasinda bir urunu ekrana yazdirarak
//Sepetin icinde urun kalmayincaya kadar,ekrana urunleri satir satir yazdir…
foreach ($sepet[urunler] as $i => $urun) {
$urun_id = $urun[0];
$miktar = $urun[1];
$toplam += $miktar * (double)$urun_listesi[$urun_id][fiyat];
?>
}
?>
Urun Adi
Kisa Aciklama
Fiyat
Miktar
Toplam Hesap Tutari :
TL
}
?>
..:: Serkan’in Oyuncakci Dukkani ::..
Online magazamizdan alabileceginiz oyuncaklarimiz:
//Butun urunleri listele
foreach ($urun_listesi as $urun_id => $oge) {
?>
}
?>
Urun Ismi
Urun Aciklamasi
Urun Fiyati
Bu urunu sepetime ekle…
sepete_at.php
Sepete urun eklemek icin yazilmis basit yapisi olan bir dosya.
//
//sepete_at.php
//Secilen urunu sepete yerlestirmek icin kullaniliyor…
//
require ‘site_kut.inc.php’; //Text dosyasi ile ilgili kutuphane
UrunleriYukle(); //Fonksiyonu burada cagirdim.Boylece urunler dizimizin icine yuklenecek
//Secilen urunu algilayabilmek icin bu degiskeni kullanacam.Ozellikle burada tanimlamakla
//onu global bir degisken haline getirdim.
$secilen_urun = array();
//Butun urunlere ait donguyu bir kere calistir ve icinden
//secilen urune ait bilgileri cek al…
foreach ($urun_listesi as $urun_id => $urun) {
if (trim($urun_id) == trim($id)) {
$secilen_urun = $urun;
}
}
// Oturumu kaydet…
session_register(‘sepet’);
if ($ordered) { //Urun secilmis ise :
array_push($sepet[urunler], array(trim($id), $miktar));
$sepet[urun_sayisi] += $miktar;
}
//Yukarida gorulen array_push fonksiyonu ile dizinin icine ekleme yapiliyor.
//Burada goruldugu sekilde secilen urun sepetin icindeki urunler listesine ekleniyor…
?>
isimli urun sepetinize basarili sekilde eklendi.Tessekkur Ederiz.
Geriye donerek alisverise devam edebilirsiniz…
Urunu sepetime ekle
Urun Ismi :
Urun Aciklamasi:
Urun Fiyati: TL.
Urun Miktari:
}
?>
miktar_degistir.php
Sepetteki urunlerin miktarini sonradan degistirmek icin kullaniliyor.
session_register(‘sepet’);
//Dogru elemente ulastigimizi garanti etmek icin $id nin veri tipini int yapiyorum…
$i = (int)$id;
//Eski miktari kaydet.Kullaniciya bilgi olmasi ve aritmetik acisindan kullanacagiz…
$eski_miktar = $sepet[urunler][$i][1];
if ($miktar) {
$sepet[urunler][$i][1] = $miktar;
} else {
unset($sepet[urunler][$i]);//Urunumuzu unut gitsin…
}
$sepet[urun_sayisi] = ($eski_miktar > $miktar) ? $sepet[urun_sayisi] – ($eski_miktar-$miktar) : $sepet[urun_sayisi] + ($miktar-$eski_miktar);
?>
Urun miktari, den/dan olarak degistirildi…
Geri donerek alisverise devam edebilirsiniz…
Kaynak : ISBN 0-672-31924-1 (Chapter 12 Shopping Cart)
Saglicakla kalin…
Duzenleyen ve Ceviren:
Serkan Hadi Ceylani
Php İle Basit bir Alis-Veris Sepeti - Yorumlar
Yapılan Yorumlar
BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler
Google Apple’ı geride bıraktı 30 Haziran 2013
Facebook’tan yeni özellik: mobil gazete 25 Haziran 2013
PC pazarının suçlusu Windows 8 mi? 19 Haziran 2013
5 milyon tweet incelemeye alındı 17 Haziran 2013
SOSYAL MEDYADA BİZSitemizin sosyal medya hesapları
ÖNE ÇIKAN KATEGORİLER
FACEBOOK'TA BİZ
Hoşgeldiniz
kelebek.gen.tr – kelebek mirc - Tüm Hakları Saklıdır