CodeIgniter 1.7.2 versiyonu ile alışveriş sepeti uygulamasını standart dağıtım paketine aldı. Böylece ayrı bir kütüphane yazmamıza gerek kalmaksızın CodeIgniter içinden kendi alışveriş sepeti uygulamamızı yükleyebiliyoruz.
Bu konu ile ilgili daha önceki bu yazımda, alışveriş sepeti uygulamasının nasıl yüklendiği ve çalışma biçimi hakkında anlattıklarım halen geçerlidir. Sadece o yazıda anlatılan application/libraries dizini altına cart.php dosyasını yüklememize gerek kalmamıştır. Bu yazıda ise uygulama sırasında ortaya çıkan bazı aksaklıkların nasıl giderildiğine dair çözümleri bulacaksınız.
Problem : Alışveriş sepetine Türkçe isimli ürünleri attığımızda sorun yaşanmaktadır. Ürünler sepete eklenmiyor.
Çözüm : Bu sorunu gidermek için system/libraries dizini altındaki Cart.php dosyasında bulunan $product_name_rules isimli değişkenini aşağıdaki şekilde düzeltmemiz gerekmektedir.
var $product_name_rules = '\.\:\-_ a-üöçşığz A-ÜÖÇŞİĞZ 0-9';
Problem : Alışveriş sepetine sınırlı sayıda ürün ekleyebiliyoruz.
Çözüm : Bu sorun CodeIgniter session kütüphanesi limitinin 4kb olmasından kaynaklanmaktadır. Sorunu gidermek için session kütüphanesinin veritabanına yazmasına izin vermemiz gerekir. Bu işlem için öncelikle veritabanına açmamız gereken tablonun sql cümlesini yazalım.
CREATE TABLE IF NOT EXISTS `ci_sessions` ( `session_id` varchar(40) NOT NULL default '0', `ip_address` varchar(16) NOT NULL default '0', `user_agent` varchar(50) NOT NULL default '', `last_activity` int(10) unsigned NOT NULL default '0', `user_data` longtext NOT NULL, PRIMARY KEY (`session_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Bu cümlede dikkat etmemiz gereken user_data kolonu büyüklüğüdür. User_data kolonu alışveriş sepeti içinde tutmak istediğimiz bilgilerin de yazılacağı kolondur. O nedenle `longtext´ formatında açtım. Çünkü bazı bilgiler eklenirken text formatında sorun yaşadım. Siz kendinize uygun olarak formatı değiştirebilirsiniz.
Tablomuzu da oluşturduktan sonra session değerlerinin veritabanına yazdırmak için application/system dizinindeki config.php dosyasındaki aşağıdaki satırı TRUE olarak değiştiriyoruz:
$config['sess_use_database'] = TRUE;
Yukarıda anlattığım şekilde hazırladığım kodların çalışan halini bu adreste izlemeniz mümkündür. Bu konu ile ilgili tespit ettiğiniz sorunlarınız olursa çözümlerini burada anlatmaya devam edebilirim.
Permalink | Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : alışveriş sepet demo
Türkiye