Database Kaynaklı Türkçe Karakter Sorunu

phpBB 2.0.x kurulum ve çalıştırılmasında meydana gelen sorun ve problemler için buradan yardım alabilirsiniz.
Kilitli
Frostmourne
Kayıtlı Kullanıcı
Mesajlar: 9
Kayıt: 03.11.2006, 03:54
İletişim:

Database Kaynaklı Türkçe Karakter Sorunu

Mesaj gönderen Frostmourne »

Selamlar,

Forumumu yeni kurdum, ilk önce 2.0.21 denedim olmadı şuan 2.019 var yine aynı sorun devam ediyor.

header ("Content-Type: text/html; charset=iso-8859-9");

kodunu headere koysamda hala türkçe karakter problemi yaşıyorum, sorunun sayfa gösteriminde değilde db den gelen verilerde olduğunu farkettim çünkü önizlemede karakterler gözüküyor ama kaydedince karışıyor herşey ve kayıt ederken aldığım hata kodu;

Kod: Tümünü seç

Could not insert new word matches

DEBUG MODE

INSERT INTO cphpbb_search_wordmatch (post_id, word_id, title_match) SELECT 2, word_id, 0 FROM cphpbb_search_wordlist WHERE word_text IN ('testğş')

Line : 251
File : functions_search.php
windows serverı üzerinde mysql4x yüklü database ve tablolar turkish_ci char setli ama soru devam ediyor nasıl çözebilirim?

Teşekkürler.
Frostmourne
Kayıtlı Kullanıcı
Mesajlar: 9
Kayıt: 03.11.2006, 03:54
İletişim:

Mesaj gönderen Frostmourne »

sorunu hallettim arkadaşlar hemen paylaşayım :)

config.php

database bağlatısından sonra ekleyin,

Kod: Tümünü seç

$mysql_charset = 'latin5'; 
$collation_connection = 'latin5_turkish_ci';
includes\db.php

bu satırı bulun;

Kod: Tümünü seç

if(!$db->db_connect_id) 
{ 
   message_die(CRITICAL_ERROR, "Could not connect to the database"); 
}
sonuna bu kodları ekleyin;

Kod: Tümünü seç

// Set connection charset & collation for MySQL (based on phpMyAdmin) 
if( preg_match("/^mysql/i", SQL_LAYER) ) 
{ 
   $sql = 'SELECT VERSION() AS mysql_version'; 

   $result = $db->sql_query($sql); 
   $row = $db->sql_fetchrow($result); 
   $match = explode('.', $row['mysql_version']); 

   if (!isset($row)) 
   { 
      define('MYSQL_INT_VERSION', 32332); 
      define('MYSQL_STR_VERSION', '3.23.32'); 
   } 
   else 
   { 
      define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2]))); 
      define('MYSQL_STR_VERSION', $row['mysql_version']); 
   } 
   unset($result, $row, $match); 

   if ( MYSQL_INT_VERSION >= 40100 && isset($mysql_charset) ) 
   { 
      if (empty($collation_connection) || ( strpos($collation_connection, '_') ? substr($collation_connection, 0, strpos($collation_connection, '_')) : $collation_connection) == $mysql_charset ) 
      { 
         $sql = "SET NAMES $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      else 
      { 
         $sql = "SET CHARACTER SET $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      if ( !empty($collation_connection) ) 
      { 
         $sql = "SET collation_connection = '$collation_connection'"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL collation connection', '', __LINE__, __FILE__, $sql); 
         } 
      } 
   } 
}
bu kadar :)

Saygılar.
ufoss
Kayıtlı Kullanıcı
Mesajlar: 138
Kayıt: 05.10.2006, 00:27
Konum: Trabzon-Tekirdag-Hollanda
İletişim:

Mesaj gönderen ufoss »

forumdaki yontemlerden denemedigim kalmdaiiii

bir turlu soru isaretleri yok olmadiiii


host parali hos:(

tum yazilarimi editleyecegimmm
Frostmourne
Kayıtlı Kullanıcı
Mesajlar: 9
Kayıt: 03.11.2006, 03:54
İletişim:

Mesaj gönderen Frostmourne »

debud mode hatasını bu şekilde aşabiliyorsun, phpbb senin verilerini yine soru işareti olarak kaydediyor ama o karakterler için word tablosunda kod id si atıyor böylece sayfada türkçe karakterler gözüküyor header tagıyla bunu dene çalışacaktır eminim, kullandığım server amerikada ve latin1 kullanıyorlar bu yöntemle forumum Türkçe şuan.
Kullanıcı avatarı
RefreSh
Kayıtlı Kullanıcı
Mesajlar: 728
Kayıt: 03.10.2006, 22:40
İletişim:

Mesaj gönderen RefreSh »

Frostmourne

Teşekkürler Güzel bir bilgi... Keşke herkes senin gibi sorununu çözdükten sonrada paylaşsa.. :idea:
ufoss
Kayıtlı Kullanıcı
Mesajlar: 138
Kayıt: 05.10.2006, 00:27
Konum: Trabzon-Tekirdag-Hollanda
İletişim:

Mesaj gönderen ufoss »

Frostmourne yazdı:debud mode hatasını bu şekilde aşabiliyorsun, phpbb senin verilerini yine soru işareti olarak kaydediyor ama o karakterler için word tablosunda kod id si atıyor böylece sayfada türkçe karakterler gözüküyor header tagıyla bunu dene çalışacaktır eminim, kullandığım server amerikada ve latin1 kullanıyorlar bu yöntemle forumum Türkçe şuan.
Daha acik anlatabilirsen sevinirim...
Umarim bu sekilde bir cozum bulabilirim.
Ama yontemi anlayamadim...

Tesekkurler
Frostmourne
Kayıtlı Kullanıcı
Mesajlar: 9
Kayıt: 03.11.2006, 03:54
İletişim:

Mesaj gönderen Frostmourne »

includes/page_header.php ve admin/admin_page_header.php dosyasında en başta <? karakterinden sonra

Kod: Tümünü seç

header ("Content-Type: text/html; charset=iso-8859-9"); 
ekle eğer bunu eklediğin halde kayıtlarda DEBUG MODE hatası alıyorsan üstte verdiğim kodları gerekli sayfalara yapıştır ozaman DEBUG MODE hatası almayacaksın ve databsede karakterler ? olarak gözükse bile forumunda Türkçe gözükecektir.

Saygılar.
ufoss
Kayıtlı Kullanıcı
Mesajlar: 138
Kayıt: 05.10.2006, 00:27
Konum: Trabzon-Tekirdag-Hollanda
İletişim:

Mesaj gönderen ufoss »

Frostmourne yazdı:includes/page_header.php ve admin/admin_page_header.php dosyasında en başta <? karakterinden sonra

Kod: Tümünü seç

header ("Content-Type: text/html; charset=iso-8859-9"); 
ekle eğer bunu eklediğin halde kayıtlarda DEBUG MODE hatası alıyorsan üstte verdiğim kodları gerekli sayfalara yapıştır ozaman DEBUG MODE hatası almayacaksın ve databsede karakterler ? olarak gözükse bile forumunda Türkçe gözükecektir.

Saygılar.
Bunlari yaptim.
Bir cok seyi denedim...
Ama forumda soru isaretleri devam ediyor...
Ama su varrrr
artik turkce karakter kullanabiliyoruz sitede...
.htaccess dosyasi olusturdum.birde yukaridaki sayfalari degistirdim...
eskiler soru isaretli kaldiiiii

onlarida yavas yavas degistirmek lazim....
tek care buuuu
bilgi kaybetmek istemiyorum

Ilgine cok tesekkur ederim..
Kullanıcı avatarı
er-13
Kayıtlı Kullanıcı
Mesajlar: 273
Kayıt: 02.08.2006, 04:52
Konum: /index.php
İletişim:

Mesaj gönderen er-13 »

Frostmourne yazdı:sorunu hallettim arkadaşlar hemen paylaşayım :)

config.php

database bağlatısından sonra ekleyin,

Kod: Tümünü seç

$mysql_charset = 'latin5'; 
$collation_connection = 'latin5_turkish_ci';
includes\db.php

bu satırı bulun;

Kod: Tümünü seç

if(!$db->db_connect_id) 
{ 
   message_die(CRITICAL_ERROR, "Could not connect to the database"); 
}
sonuna bu kodları ekleyin;

Kod: Tümünü seç

// Set connection charset & collation for MySQL (based on phpMyAdmin) 
if( preg_match("/^mysql/i", SQL_LAYER) ) 
{ 
   $sql = 'SELECT VERSION() AS mysql_version'; 

   $result = $db->sql_query($sql); 
   $row = $db->sql_fetchrow($result); 
   $match = explode('.', $row['mysql_version']); 

   if (!isset($row)) 
   { 
      define('MYSQL_INT_VERSION', 32332); 
      define('MYSQL_STR_VERSION', '3.23.32'); 
   } 
   else 
   { 
      define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2]))); 
      define('MYSQL_STR_VERSION', $row['mysql_version']); 
   } 
   unset($result, $row, $match); 

   if ( MYSQL_INT_VERSION >= 40100 && isset($mysql_charset) ) 
   { 
      if (empty($collation_connection) || ( strpos($collation_connection, '_') ? substr($collation_connection, 0, strpos($collation_connection, '_')) : $collation_connection) == $mysql_charset ) 
      { 
         $sql = "SET NAMES $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      else 
      { 
         $sql = "SET CHARACTER SET $mysql_charset"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql); 
         } 
      } 
      if ( !empty($collation_connection) ) 
      { 
         $sql = "SET collation_connection = '$collation_connection'"; 

         if ( !($db->sql_query($sql)) ) 
         { 
            message_die(CRITICAL_ERROR, 'Could not set MySQL collation connection', '', __LINE__, __FILE__, $sql); 
         } 
      } 
   } 
}
bu kadar :)

Saygılar.
helalin var eline sağlık
teknick
Kayıtlı Kullanıcı
Mesajlar: 1
Kayıt: 22.11.2006, 22:19
İletişim:

Mesaj gönderen teknick »

merhaba arkadaşlar bende de benzer bir sorun var yardımcı olursanız sevinirim

bir phpbb sitem var buna categories hierarchy yi yükledim ve artık admin panelimde veritabanı yedekleme diye bir seçeneğim yok! bende phpmyadmin ile yedek aldığımda ve bunu başka bir host'a taşıdığımda türkçe karakterler bozuk çıkıyor çünkü phpmyadminden aldığım slq yedeğini açtığımda da içerisindeki türkçe karakterler bozuk! ancak eskiden phpbb admin panelinden aldığım sql yedeklerinde gördüm ki türkçe karakterler düzgün çıkıyor.

aynı şekilde mysql e ssh ile komutsatırından bağlanıp yedek aldığımda karakterler yine bozuk olarak sql'e kaydediliyor.

şimdi benimişime yarayacak çözümler sanırım 2 tane

1-) Categories hierarchies de nasıl veritabanı yedekleme bölümü oluşturabilirim? (eski phpbb'nin kileri denediğimde sonradan gelen CH'ın tablolarını almıyor)

2-) Mysql komutsatırından veya PhpMyAdmin den nasıl türkçe karakterleri düzgün çıkartacak şekilde yedek alabilirim?

phpbb admin panelinden türkçe karakterleri düzgün şekilde sql'e kaydediyorsa bir yolu vardır ben eksik yapıyorum herhalde diye düşünüyorum!


Şimdiden çok teşekkürler!!
Kullanıcı avatarı
Kartal23
Kayıtlı Kullanıcı
Mesajlar: 384
Kayıt: 31.10.2006, 23:58
Konum: İstanbul
İletişim:

Re: Database Kaynaklı Türkçe Karakter Sorunu

Mesaj gönderen Kartal23 »

bende sql dosyamı sorgulatarak yükledim... (ç) yerine (?) yani türkçe noktalılarda bu şekilde çıktı.. sonra ben editlemeye başladım. bu seferde aşşağıdaki mesaj çıktı... bu modu kurunca sorun düzelirmi?
config.php nin en son satırına mı ekleme yapıcaz?

Kod: Tümünü seç

Could not query files information

DEBUG MODE

SQL Error : 1146 Table 'boraboyn_boraboy.PA_FILES_TABLE' doesn't exist

SELECT * FROM PA_FILES_TABLE WHERE file_approved = 1 ORDER BY file_time DESC LIMIT 5

Line : 258
File : portal.php
http://www.boraboy.net

Türkçe' ye Sahip Çık;
Yok Olmasına İzin Verme.
depth
Kayıtlı Kullanıcı
Mesajlar: 3
Kayıt: 28.03.2007, 11:54
İletişim:

Re: Database Kaynaklı Türkçe Karakter Sorunu

Mesaj gönderen depth »

Phpbb forumun host unu değiştirdim. tüm dosyaları yeni hosta aktardım. Fakat daha önceden görünen türkçe karakterler değişik simgelerle görünmeye başladı. eski hosttan veri yedekleme yapıp diğer tarafa veri yüklemesi yaptım aynı sorun tekrar oldu. Veri yedeklerken indirdiğim sql dosyasını notepad le açtığımda orada türkçe karakterlerin okunduğunu görüyorum. Fakat aynı database i foruma yüklediğimde türkçe karakterler gitmiş oluyor.Üstteki kodlarıda denedim ama genede düzelmedi.

İşin ilginç tarafı yeni yazılan mesajlarda da türkçe karakter problemi yok. Herşey normal. Ama eski mesajlar bir türlü düzelmedi...

Ý - İ

Ã? - Ş

ö - ö

þ - ş

ý - ı

şeklinde oluyor karakterler.
Kilitli

“2.0.x Destek Forumu” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Ahrefs [Bot] ve 1 misafir