PhpNuke kurdunuz ve başta herşey normal gibi. Fakat daha sonra içerikte Türkçe karakterlerin görüntülenmediğini farkettiniz. Bu farklı sebeplerden ötürü kaynaklanıyor olabilir. Ama herşey normalken ve internette bulduğunuz tüm önerileri uyguladıysanız, bir de buraya kulak verin. Eğer mysql veritabanı versiyonunuz 4x ise, bu hatalar gayet normaldir. Çözümse burada.
Anlatacağım yöntemi doğru uygularsanız veritabanından kaynaklanan Türkçe karakter problemi yaşamazsınız. O yüzden yorumlara gelen, ve konuyla alakasız “olmadı” türündeki mesajları değerlendirmeyeceğim.
Aslında bu bildiğimiz mysql 4x Türkçe karakter problemidir ve “MySQL Türkçe Karakter Problemi” başlığında çözümü zaten sunmuştum. Fakat yapamayanlar için phpnuke için konuşacağız.
Yeni bir veritabanı yaratırken, karşılaştırma değerini daima latin5_turkish_ci seçin. Dilimize ait karakter kodu budur. Bu şekilde veritabanını yaratırsanız, tablolar için yapmanız gereken fazladan birşey yok. Tablo yaratırken, metin değerli sütunların karşılaştırma değerlerini boş bırakabilir yada yine latin5_turkish_ci seçebilirsiniz.
Daha sonrasında, mainfile.php dosyasını açıp aşağıdaki kodları bulun,
require_once("includes/sql_layer.php");
ve hemen alt satırına,
mysql_query("SET NAMES 'latin5'");
satırını ekleyin. İşte bu kadar.
Bu yöntem sıfırdan phpnuke kuranlarda işe yarayacaktır. Mevcut bir veritabanını bu karakter setine almaksa uzun bir işlem. Veritabanı, tablolar v.b. tek tek yapmanız gerekiyor. Ve yapmasanız bile eski verilerdeki karakter hatalarını düzeltemeyeceksiniz.
Anlattığım yöntemi kendi sitelerimde uygulamaktayım, o yüzden karşılaşacağınız hataların anlattıklarımdan ötürü olmadığına emin olabilir, farklı yerlerde problemi arayabilirsiniz.
Bilgilendirici bir yazı tşkler
Çok teşekkür ederim 4 gündür halledemediydim..yüklü eski veritabanları için yapılacak birşey yok anladığım kadarıyla..teşekkürler tekrardan…
bu sorun bendede mevcuttu sayenizde çözdüm teşekkürler
essoloube nickli arkadaşın dediği şekilde yaptım sorun kalmadı. Bu konuyu hazırlayan arkadaşa ve özelliklede essoloube nickli arkadaşa teşekkür ederim.
Teşekkür ederim Çok işime yaradı..
ahmet kardeşim Yüce Allah Yar ve Yardımcın Olsun teşekkür ederim
ben de yüksek aptallık örneği göstererek backup almadan mysql’den nuke_bbposts_text dilini tr yapmış idim; daha sonra bu hatayla karşılaşınca tekrar geri aldım latin’e fakat şimdi bütün mesajlar “?” ile doldu. neyse bu editlemeleri yapmadan da bu işlem mysql halledilebiliyormuş.
phpmyadmin’den nuke_bbposts_text turkish yaptıktan sonra foruma mesaj gönderilirken, mesaj foruma doğru bir şekilde gönderilmesine rağmen dmry’nin bahsettiği hata veriyor.
Bunu da ben wordlist’i temizleyip dilini turkish yaparak hallettim. Eğer wordlist benim için önemli diyorsanız; o zaman wordlist’i boşalttıktan sonra bir editör ile back-up’taki malum karakterleri türkçe halleriyle düzenleyip tekrar phpmyadmin’den sitenize ekleyebilirsiniz.
Selamün Aleyküm
ewt arkadaşalr php nuke 7.9 türkçe karakter sorunu ALLAH(C.C) ın izniyle çözüldü elhamdulillah.
http://www.netopsiyon.com/modu.....p;p=172106
Linkte antisilence arkadaşımız şöle diyor:
arkadaşlar bende yaşadım bölee bi sorun ve şu şekilde çözdüm
(aşağıdakiler alıntıdır…)
——————
PHP-Nuke Türkçe Karakter Sorunu
PHP-Nuke 7.9 kullanmaya çalışanlar gerek blok başlıklarında,
gerek bazı yerlerde Türkçe karakterlerin bozulmasından şikayet
ediyorlar. 7.9 sürümlerinde bu sorunun nedeni mainfile.php
dosyasıdır. Çözümü ise aşağıdaki gibidir.
mainfile.php dosyasını açın.
function filter($what, $strip=”", $save=”", $type=”") {
if ($strip == “nohtml”) {
$what = check_html($what, $strip);
$what = htmlentities(trim($what), ENT_QUOTES);
// If the variable $what doesn’t comes from a preview screen should
be converted
if ($type != “preview” AND $save != 1) {
$what = html_entity_decode($what, ENT_QUOTES);
}
}
if ($save == 1) {
$what = check_words($what);
$what = check_html($what, $strip);
$what = addslashes($what);
} else {
$what = stripslashes(FixQuotes($what));
$what = check_words($what);
$what = check_html($what, $strip);
}
return($what);
}
Yazan yeri bulun ve komple silin. Yerine aşağıda verdiğim kodu
ekleyin.
function filter($what, $strip=”", $save=”", $type=”") {
if ($strip == “nohtml”) {
$what = check_html($what, $strip);
$what = trim($what);
// If the variable $what doesn’t comes from a preview screen should be converted
if ($type != “preview” AND $save != 1) {
$what = $what;
}
}
if ($save == 1) {
$what = check_words($what);
$what = check_html($what, $strip);
$what = addslashes($what);
} else {
$what = stripslashes(FixQuotes($what));
$what = check_words($what);
$what = check_html($what, $strip);
}
return($what);
}
ve ben yaptım oldu ALLAH(C.C) ın izniyle elhamdulillah.
Hocam, hata tam olarak şu:
Could not insert new word matches
DEBUG MODE
SQL Error : 1271 Illegal mix of collations for operation ‘ IN ‘
INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match) SELECT 19, word_id, 0 FROM phpbb_search_wordlist WHERE word_text IN (’bee’, ’sonunda’, ‘düzeldi’, ‘türkçe’, ‘kodlama’, ‘hatası’, ‘ben’, ‘mutluyum’, ‘ııçşüğ’, ‘diyemedim’, ‘yine’)
Line : 251
File : functions_search.php
phpmyadmin’den latin5 seçtim olmadı.
ne yapmam gerekiyor. belirtirseniz beni bahtiyar edersiniz
Evt iyi oldu bu