Türkiye Sanal Havacılık Forumu

Genel Konular => Havadan Sudan => Topic started by: HAKAN GUVEN on February 02, 2014, 04:33:54

Title: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 02, 2014, 04:33:54
Arkadaşlar aramızda açık kaynak kodlu opencart eticaret sitesi, bunun modülleri ve PHP'den anlayan birileri var mı? Bizim sitede tuhaf bir sorun var, bir türlü çözemiyoruz!
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: FIRAT BİŞKİN on February 02, 2014, 06:38:33
Sorun nedir Hakan Hocam, Openchart kullanmadım ama PHP ise yardımcı olabilirim.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: OSMAN BARISIK on February 02, 2014, 11:51:27
Fırat hocam kadar iyi olmasamda bende yardımcı olabilirim hocam sorunu anlatabilir misiniz
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 02, 2014, 14:53:36
Arkadaşlar ilginize teşekkürler.
 

Bir eticaret sitemiz var ve opencart 1.5.5.1 sürüm üzerinde epixel tarafından hazırlanmış ve başka birisi tarafında Türkçeleştirilmiş bir tema kullanıyoruz. Bu arkadaş bize PayU ortak ödeme modülünü de (kendi yazdığı) ücreti karşılığı yükledi. Sorun, aslında en başta kendini belli etmişti ama ben sorduğumda "browser'dan kaynaklıdıri chrome ya afirefoz'a geçin düzelir" demişti. Bende yükledim ama tesadüf test ederken sorun olmayan satışlara baktığım için gözden kaçtı.

 

Problemi geçenlerde bir başka şey için test yaparken farkettim. Kredi kartı ödemelerimizi PayU şirketi üzerinden alıyoruz. Kullandığımız modül, PayU ortak ödeme sayfasına açılmasını sağlıyor satışın. FAkat dikkat ettim ki ürün adları içinde Ç-Ö ve Ü harfleri varsa, ödemeyi onayla dedikten sonra PayU ortak sayfasına geçmesi gerekirken, browser'da "success checkout" la sonu biten bir linkle, aslında düşmemesi gereken "siparişiniz alınmıştır" diye bir sayfaya düşüyor. PayU'ya asla böyle bir satış bilgisi gitmiyor.

 

Türkçe harf hatası olması muhtemel gözüktüğü halde İ-Ğ ve Ş harflerinde herhangi bir sorun yok. Dikkatimi çeken bazı verilerdeki harflerde de, Opencart içinde nadiren ama PayU ortak ödeme sayfası ile PayU tarafından gönderilen mutabakat formunda "kodlanmış" şekilde çıkıyor. Örneğin "Sipariş toplamı" şu şekilde çıkıyor "SipariÅ? Toplamı"

 

PayU ile konuştuğumuzda istedikleri şeyin UTF8 encoding olması. Modülü yapan kişiye sorduğumda ne temada ne de modülde UTF8 sorunu yok diyor. Dediğine göre isimtescil firmasının hosting'i sorunluymuş , başka heryerde çalışıyormuş. Bana Turhost'u öneriyor buraya geçersem sorun kalmauyacakmış . KEndi hosting firmama soruyorum sizde böyle birşey varmı, harflerle ilgili olarak diye onlarda yok diyor.

 

Bende iyice emin olmak istiyorum çünkü basit bir yazılım kod hatası ise durduk yere yüzlerce lirayı çöpe atmış olacağım. Ve taşırken biliyorumki mutlaka birşeyler unutulacak eksik olacak vsvsv.

 

Opencart'ın kendi içinde bir hata günlüğü var. Burada 3 tane hata oluşuyor;

 

2014-01-30 17:12:13 - PHP Notice:  Undefined variable: button_confirm in /home/pheptgi2/public_html/catalog/view/theme/default/template/payment/payu.tpl on line 4

Bu TPL dosyasını açtım zaten topu topu 4 satır var, ama birşey ifade ediyormu bilmiyorum isterseniz  buraya koyarım.


2014-01-30 15:26:40 - PHP Notice:  Undefined variable: product in /home/pheptgi2/public_html/vqmod/vqcache/vq2-catalog_view_theme_fashion-black_template_product_category.tpl on line 188

2014-01-30 15:22:16 - PHP Notice:  Undefined variable: product in /home/pheptgi2/public_html/vqmod/vqcache/vq2-catalog_view_theme_fashion-black_template_product_category.tpl on line 251

Bunlara baktığımda her iki satırın da karşılığı boş.

Özetle, içinde  Ç-Ö-Ü harfleri olan ürün adları , kredi kartı ile satın alınmak istendiğinde PayU ortak ödeme sayfasına gitmiyor. (tuhaf olan, ürün açarken kazara İngilizce kısmına Türkçe karakterlerle yazsam bile sistem kabul ediyor :) )Bunun dışındaki tüm satışlarım aktif bir sorun yok sadece bu 3 harfde sorun var.

 

Pratik çözüm var elbette; bütün sorunlu ürünlerden bu 3 harfi çıkarmak. Ama nihayetinde asıl sorunu çözmüyor ve unutma ihtimalim var.

 

Ne dersiniz? her türlü fikre açığım.

 
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: FIRAT BİŞKİN on February 02, 2014, 17:21:11
1) Hosttan değildir, size bu cevabı veren kişinin sizi başından salmaya çalıştığı kesin!
2) Sorun büyük ihtimal Database nin TR karakter sorunundan kaynaklı olabilir bu sizden değil kullandığınız PayU sisteminden kaynaklı olabilir... Sitenizde sorunsuz gözüküyorsa harfler Database ye yazılırken sıkıntı çıkartıyor ihtimalini öne çıkarıyor.
3) Eğer Ç-Ö-Ü harflerinden yapıyor diyorsanız, bu harflerin yerine ufak bir kodla C-O-U yazılarak gonderilmesi sağlanabilir bu sorununuzu çözebilir. Ürün adı aynı kalır sadece sisteme bu şekilde gider ve kayıt olur.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 02, 2014, 17:36:32
PayU'ya soruyorum "daha önce böyle bir sorun yaşadınız mı?" diye, hayır diyorlar. Bizim için tek önemli olan UTF8 encoding olması ve kullandığınız modülün bize uyması (gerekli alanların adları vsvsvs).

Hosting'in database'ine baktık Fatih Koz'la beraber (ben çok anlamam çünkü), UTF8-ci  Türkçe şeklinde ayarlı. İsimtescil'e de anlattım durumu ama onlar bir hata kodu varsa ancak bakabiliriz diyorlar.
Modül'ü hazırlayan arkadaş benden büyük ve fena halde alıngan! ne söylesem ters anlıyor. Bana göre de bazı kodlarda sorun var ama adama bunu söyleyince "başkalarında çalışıyor bu "diyip bozuluyor!

 

Bende tıkandım kaldım böyle. Hosting şirketine çıkışsam banada mantıksız geliyor mutlaka benzer şekilde php kodları ile birileri birşey yapıyordur onlarda da hata oluşması lazım. Adama çıkışacağım artık doğrumu söylüyor yalan mı oarasını bimiyorum, herkesde çalışıyor senin hosting dandirik diyor. PayU benim senle işim yok senin benimle işin var, hata senin tarafında diyor-ki herhalde bir ton insan bu şekilde çalışıyor adamlarla, sorun olsa çözümünü söylerler.

 

Sorun  sadece bu 3 harf'de ve mutlaka bir yerde bu harflerle ilgili bir hata var ama beni aşıyor. PHP Kodlarına bakınca ben pek birşey anlamıyorum. Evet mantıklı bir çözüm Ç-Ö-Ü harflerini değiştirdiğinde PayU ortak ödemeye geçerse harflerin değişmesi hiç sorun değil.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: FIRAT BİŞKİN on February 02, 2014, 17:43:30
Tamam hocam dilerseniz size PHP Host sağlıyım ücretsiz birde orada test edin, olmadı bilgisayarınıza bağlanıp şu kodları inceliyim ve Ç-Ö-Ü harfleri yerine PayU ya C-O-U gondertelim.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 02, 2014, 17:48:11
hocam database deki harf kodu şöyle;
 

Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 02, 2014, 17:49:35
nasıl bağlanalım Fırat hocam?istersen ftp bilgilerini göndreyim yada teamviewer nasıl istersen
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: METIN DIKBAS on February 02, 2014, 18:15:07
Ben olsam Fırat hocamın dediği şekilde bir çözüm kullanırdımç Bu sayede bu harfler yanlışlıkla kullanılsa dahi işleme alınacakken ayıklanabilir.

echo str_replace("world","Peter","Hello world!");
?>
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: KEMAL EMRE ÖZTİRYAKİ on February 02, 2014, 22:27:23


Hocam sizinki basit bir karakter probleminden çıkmış kendi kendine yeşermiş sanırım. Detaylıca bir iki çözüm yazayım belki olur belki olmaz...

C O U değişimi
Fırat hocamın dediği gibi o üç harfi C O U yapıp yollayabilirsiniz. En kolay ve uğraşısız çözüm bu olur ama sipariş toplamı vs. gibi yerlerinizi düzeltmez, sitenizde veritabanından çektiğiniz yerlerde türkçe karakter sorunu yaşıyorsanız ona da çare olmaz. Kalıcı bir çözüm değil fakat uygulanabilir.

Veritabanındaki TR karakterin sitede bozuk görünmesi:
Databasei utf8_turkish_ci olarak değiştirip yine tüm sitenizin karakter encodingini utf-8 yapmalı, sitedeki database e bağlanan (connect.php olduğunu varsayıyorum) kod satırının altına da set names utf8 atayın derim. Örnek:

mysql_connect($db_host,$db_user,$db_password);
mysql_select_db($db_database);
mysql_query("SET NAMES UTF8");

Bakınız: http://www.ivaotr.org/v5/events/index.php?page=details&id=43


Bir diğer olay:
Size payU tarafından formla bir veri gönderiliyorsa ve yollanan veri farklı bir encoding formatındaysa mb_convert_encoding komutu işinize yarar. Bunu yine sizden giden veriyi çevirip yollamak için de kullanabilirsiniz. php.net/mb_detect_encoding adresinden detaylara bakabilirsiniz.


Tam olarak bakmadan, denemeden kesinlikle sorun budur diyemeyeceğim çünkü "ürünün adında tr karakter varsa başka bir sayfaya yönlendiriyor" kısmını tam anlayamadım bile.
Eğer sorun çözülmezse biz buralardayız hocam, gerekirse teamviewerdan girip çözmeye de çalışabiliriz.




Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: OSMAN BARISIK on February 03, 2014, 01:06:10

Merhaba hocam veritabanı bilgi gönderirkende utf 8 i ayarlamanız gerek bu tarzda sorun yaşamıştım. Ben veritabanına bağlanırken şu kodu kodu kullanıyorum.       // MySql'e Bağlanma      $db_host = "localhost";   $db_user = "root";   $db_pass = "";   $db = "blog";      $baglan = mysql_connect ($db_host,$db_user,$db_pass) or die (mysql_error());      //Veritabanı Seçme         mysql_select_db($db,$baglan) or die (mysql_error());         mysql_query("SET CHARACTER SET 'utf8'");   mysql_query("SET NAMES 'utf8'");
Kemal hocamın da dediği gibi kesin sorun budur diyemeyiz ama. Yüksek ihtimalle sorun bu gibi gözüküyor. Yukarıdaki kodu veritabanı bağlantısı kodlarınızda karşılaştırın birde bunu deneyin.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 03, 2014, 02:40:40

KEmal hocam şu şekilde sanırım daha iyi anlatabilirim o sayfa hikayesini;
 
www.hep-giyim.com
benim siteyi ve fonksiyonlarını test için kullandığım kullanıcı adı ve şifresi ile girişi yapın müşteri gibi;
kullanıcı : 
şifre: Pm ile gönderirim.
 
önce şunu almayi deneyin;
http://www.hep-giyim.com/index.php?route=product/product&path=24_85&product_id=482
Sepete attıktan sonra kasaya git diyerek devam edin. Nasıl olacağını biliyorsunuz. Mdeme seçeneklerine gelince "kredi kartı...." nı seçin ve kullanım sözleşmesini okudum kutuusnu işaretleyip devam edin. fiyat dökümü gelince siparişi onayla dediğinizde sizi PayU'nun ortak ödeme sayfaısna yönlendirecek. (bunun site içinde açılanı var ama biz ortak ödeme sayfasını müşterinin kendisini güvende hissetmesi açısından tercih ettik. Site içinde açılanı zaten hiç çalışmadı!). PayU ortak ödeme açılınca direk kapatın, hiç sorun değil.
 
Tekrar siteye girin. Alışvriş sepetini boşaltsanızda boşaltmasanızda şu ürünü sepete ekleyin;
http://www.hep-giyim.com/index.php?route=product/product&path=24_85&product_id=483
 
ikisi arasındaki fark, bu ürünün adında sorun yaratan harflerden birisi  var. (Ü)
aynı satın alma işlemini tekrar ettiğinizde bu sefer sizi site içinde bir sayfaya işlem bitmiş gibi atacak.
 
Osman hocam kod konusunda basit HTML'den başka bildiğim birşey yok ancak dikkatle okuyorum yazdıklarınızı. Bunları FTP'deki ilgili dosyaların PHP kodlarında aramaya çalışacağım. Opencart'sın sorunu aynı dosyalardan birkaç yerde bulundurması.
 
PayU mutabakat formunda karakterlerin bozuk çıkması onların bana gönderdiği formu benim bilgisayarda açmam olabilir.  Fakat sitelerinde sipariş ödeme onay formunda (web üzerinden) gördüğümde, benim siteden çektiği bazı harflerde benzer kodlama sorunu oluyor. Mesela Yukarıdaki gibi denediğinizde satın alınması denenen ilk ürün için PayU formunda adreste geçen "Ş " harfi bir tuhaf çıkacak. (orada da ü normal çıkıyor :)))
 
Sunucu bağlantısı karşılaştırmasında seçenek olarak Turkish var. Bunu denediğimde bütün database'de bir karakter değişikliği olurmu? yoksa önce bir yedek mi alayım?
 
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 19, 2014, 03:18:22
Arkadaşlar,
 

şu Ç,Ö ve Ü harflerini gönderirken C,O ve U şeklinde düzletecek olan kodu bana yazmanız mümkünmüdür?
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: OSMAN BARISIK on February 19, 2014, 04:56:34
$icerik = "ÇÖÜ";$bul = array("Ç","Ö","Ü");$degistir = array("C","O","U");
$icerik = str_replace($bul,$degistir,$icerik);echo $icerik;
Hocam buyrun ekrana COU gelecektir.
Title: Re: Opencart-modül-PHP'den anlayan varmı?
Post by: HAKAN GUVEN on February 19, 2014, 08:52:10
çok teşekkur ederim, aksam modulu yazan elemana sorup uygun dosyanin icine atacagim. Ekrana gelmesinden ziyade su ortak odeme sayfasina gecerken harf yuzunden takilmasin bari.