Türkiye Sanal Havacılık Forumu

Opencart-modül-PHP'den anlayan varmı?

Offline KEMAL EMRE ÖZTİRYAKİ

  • Captain
  • *

  • IVAO ID: 399189

    • Posts: 1476
    • KEO


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.




Kemal Emre Oztiryaki
IVAO Supervisor
Development Operations Support
Webmaster - Turkey


Offline OSMAN BARISIK

  • Second Officer
  • *
  • I like ATC.

  • IVAO ID: 429061

    • Posts: 411

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.


Osman BARISIK
Training Advisor 5
ATC Operation Coordinator

International Virtual Aviation Organization
Asus Z270 K-i7 7700-GTX1060-16GB-1,5TB


Offline HAKAN GUVEN

  • Captain
  • *

  • IVAO ID: 102985

    • Posts: 1253

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?
 


Offline HAKAN GUVEN

  • Captain
  • *

  • IVAO ID: 102985

    • Posts: 1253
Arkadaşlar,
 

şu Ç,Ö ve Ü harflerini gönderirken C,O ve U şeklinde düzletecek olan kodu bana yazmanız mümkünmüdür?


Offline OSMAN BARISIK

  • Second Officer
  • *
  • I like ATC.

  • IVAO ID: 429061

    • Posts: 411
$icerik = "ÇÖÜ";$bul = array("Ç","Ö","Ü");$degistir = array("C","O","U");
$icerik = str_replace($bul,$degistir,$icerik);echo $icerik;
Hocam buyrun ekrana COU gelecektir.


Osman BARISIK
Training Advisor 5
ATC Operation Coordinator

International Virtual Aviation Organization
Asus Z270 K-i7 7700-GTX1060-16GB-1,5TB


Offline HAKAN GUVEN

  • Captain
  • *

  • IVAO ID: 102985

    • Posts: 1253
ç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.