Ubuntu sunucu charset problemi

Başlatan CeRNoBiL, 26 Nisan 2012 - 14:05:50

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

CeRNoBiL

Arkadaşlar merhaba. Önceki açtığım başlıklar ile sunucu kurulumunu yapmıştım. Şimdi ise bir sorun ile karşılaştım çözemiyorum.

/var/www/site1
/var/www/site2

dizinlerinde 2 site yayınlıyorum.
php.ini dosyasından default_charset ayarını utf8 yaptıgım zaman www klasörü içerisindeki dosyaların charseti normal oluyor, site1 ve site2 klasörleri içerisindeki karakterler bozuluyor.
default_charset iso-8859-9 yaptıgım zaman ise site1 ve site2 klasörleri normal oluyor, www klasörü içerisindeki site bozuluyordu. Zaten site1 ve site2 yi kullandıgım için şimdilik iso-8859-9 yapmıştım. Bugün sunucuya PHP-Fusion içerik yönetim sistemi kurdum fakat üye ekleme aşamasında i harfini geçersiz karakter olarak algılıyor. i harfi olmadan kayıt girmek istedigimde sorun olmuyor. Aynı php fusion içerik yönetim sistemini başka host'a kuruyorum sorunsuz calısıyor. Üye geçerlilik kontrol kodları aşagıdaki gibi.

if (!preg_match("/^[-0-9A-Z_@\s]+$/i", $username))
{
$error .= $locale['452']."<br />\n";
}


Bu sorunu nasıl çözebilirim ? Galiba php conf ayarlarında bi sorun var.. teşekkürler.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 26 Nisan 2012, 14:09:25

Bu geçerlilik kontrolünü sildiğim zaman i harfi ile kayıtlar girebiliyorum güncelleyebiliyorum, sadece bu preg_match kontrolü yaparken neden o "i" harfini kütüphanesine dahil etmiyor. UTF 8 ile mi çözülecek acaba..

Felâsife

Alıntı Yapphp.ini dosyasından default_charset ayarını utf8 yaptıgım zaman www klasörü içerisindeki dosyaların charseti normal oluyor, site1 ve site2 klasörleri içerisindeki karakterler bozuluyor.

Bu sorun site1 ve site2 dizinlerinde ki dosyaların (sanırım) utf8 olmamayışından kaynaklanıyor, anlaşılan iso-8859-9 formatındalar.
Bu dosyaların hepsimi yoksa atıyorum sadece dil dosyalarımı iso-8859-9 formatında, bunu tespit edebiliyor musunuz?
Tek tek kontrol zor geliyorsa sanırım bu komut işe yarayabilir.
file -i *

Ama siz bu kontrolleri yaparken tavsiyem site1 ve site2 dosyalarını masaüstünüze indirip öyle kontrol edin böylesi daha kolay ve güvenli olur.

Zira çok dosya başka formattaysa onları utf8 yapmanız gerekebilir, bu da aktif sunucuda zor olacaktır.

Tabii sadece dosyalar değil DB de yani .sql dosyasınıda utf8 yapmanız gerekebilir, zira o da diğer formatta olabilir, iş çok yani  :)


Vakti zamanında bu sorundan bende çok çektim ve çetrefil bir konudur ama çözülemezde değildir, 2000 üyeli bir forumu joomla 1.x (iso-8859-9) den joomla 1.5 (utf8) 'a göç ettirmiştim de  :D
Fakat artık Linux kullanmadığım için fazla bir yardımım olmayabilir ama yol gösterebilirim.


Neyse siz dosyaları ve .sql kontrol edin durumları nedir? hatta mysql'u da kontrol edin charset nedir? ona göre bir plan yapabiliriz belki :)
Maceraya hazır mısın!  Bir BSD almaz mısın?