Kod Dostu

Kod Dostu

CTGR10 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
CTGR10 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

PHP de Türkçe Karakter Sorunu

Öncelikle merhaba =) İnternet dünyasında aradığınızda üzerine en çok konuşulmuş, konuşulan konulardan birisidir aslında "Türkçe Karakter Sorunu". Web yazılımı / tasarımı ile uğraşanlar sık sık ya da genellikle bu sorunla karşılaşmaktadır. Kendi açımdan konuşmam gerekirse ne kadar tecrübem olursa olsun, ne kadar çok bu sorun üzerine çözümüm olursa olsun yine de projelerin belirli sürelerini Türkçe Karakterlerle uğraşmaya ayırıyorum.
Üzerinde çalıştığım en son projem de başıma gelenlerin hala cevabını bulamadım. Bir çözüm geliştirdim ama aklımda müthiş bir soru işareti olarak kaldı yaşadıklarım. Kısaca açıklamam gerekirse, projemin veri tabanı ile bağlantılı (ki hepsi bağlantılıydı, index hariç) sayfalarında charsetimi utf8 olarak tanımladım.

<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />

Veri tabanımın ve toblolarımın karakter karşılaştırma tiplerini de utf8_turkish_ci olarak ayarladım. Yönetici panelim dahil hiçbir sayfa da türkçe karakter sorunum olmadı fakat index.php sayfam da ilginç bir şeyler yaşanmaya başlandı. İçeriği, menuleri vb. include ettiğim sayfamda türkçe karakterler ama hepsi değil sadece ş ve ğ sorun çıkartıyordu.
İlk olarak sayfa charsetini ISO ya çevirdim ve veri tabanımın karşılaştırma tiplerini latin5_turkish_ci yaptım.

<meta http-equiv="Content-Type" content="text/HTML; charset=ISO-8859-9" />

Fakat sorun yine aynı kaldı. index.php sorunluydu. Ardından veri tabanı bağlantımdan sonra karakter tipim ile ilgili sorgular döndürerek karakter tipimi sağlam bir şekilde tanımlamak istedim.

    mysql_select_db("veritabanı_adı");

    mysql_query("SET NAMES ´latin5´");
    mysql_query("SET CHARACTER SET latin5");


Fakat sonuç tekrardan hüsran ile bitti. index.php sorunlu çalışmaya devam etti. Uygulumalaya çalıştığım ilk çözümlerin ardından 3 güne yakın bu sorun ile uğraştım ve merakımın giderek artmasına rağmen çözüm aramayı bıraktım ve gözünü sevdiğim html kodları ile (türkçe karakterlerin html kodları) sorunu hallettim.

Öncelikle PHP de bir fonksiyon yazdım.

function tr($yazi) {
$yazi = trim($yazi);
$ara = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü');
$degistir = array('&#199','&#231','&#286','&#287','&#305','&#304','&#214','&#246','&#350','&#351','&#220','&#252');
$yeni_yazi = str_replace($ara,$degistir,$yazi);
return $yeni_yazi;
}

Bu fonksiyonun ne işe yaradığı zaten ortada ama kısaca türkçe karakterleri verilen string bloğu içerisinden bulup html kodlarıyla değiştiriyor. Bu fonksiyonu yazdıktan sonra veri tabanına kayıt aşamasında verilerimi bu fonksiyonumun süzgecinden geçirerek kayıt ettim ve hiç bir sorun olmadan index.php sayfamda türkçe karakterleri kullanabildim. Hala index.php üzeinde oluşan ilk sorunun nedenini merak etmekteyim ve umarım çalışmalarım sonucunda sorunu çözerim =)



Read More...

PHP ile Veri Tabansız Telefon Rehberi

Bölümümüzün en iyi hocası olduğunu düşündüğüm Tarık KIŞLA hocamızından bu dönem hem ağ hem de veritabanı dersini alıyoruz. Geçen sene misafir!!! bir öğretim görevlisinden aldığımız veritabanı dersi pek yararlı geçmemiş, çoğu insan hak etmediği puanları almış ve en önemlisi de kimse bir şey öğrenememişti. Bu dönem  bu dersi Tarık Hocadan almamız bizim için müthiş bir şans. Bu şansı tüm BÖTE 3. sınıf öğrencilerinin en iyi şekilde kullanabilmesi en büyük temennim.
Tarık Hoca'nın veri tabanı dersine henüz girmemiş olsam da :D verdiği ödevden arkadaşlarım sayesinde haberdar oldum. Hocamız bize veritabanının önemini anlamamız amacıyla veritabanı yerine bir .txt kullanarak telefon rehberi yazmamızı istemiş. Bir not defteri ve istediğimiz bir dili kullanacakmışız. :) Hocamızın mantığı çok hoşuma gitti. Hemen oturup yazmak istedim ama kısmet bu güneymiş. Anca zamanım oldu :D Ben bu ödevi yaparken PHP, Ajax(Javascript), CSS, HTML teknolojilerini kullandım. Ödevin teslim günü benim grubum için salı günü. Erkenden ödevi paylaşmamda ki amaç, arkadaşlarıma yardımcı olabileceğini ya da en azından fikir verebileceğini düşünmemdir. Yanlız bir hatırlatma. Eğer buradaki kodlardan bir şeyler öğrenmek istiyorsanız, LÜTFEN algoritmayı anlamaya çalışın. Kopyala yapıştırdan kaçının.
Projenin dosyalarını yine bu sayfa içerisinde paylaştım. Kodları fotoğraf olarak paylaşmamdaki amaç buradan direk kopyala yapıştır ile alınarak kullanılmalarını istemememdir.
Kullanıcı Arayüzü
Kullanıcı arayüzü'nün yapımında HTML, CSS ve Javascript teknolojilerini kullandım. Jquery'nin toggle fonksiyonu aracılığı ile açılır kapanır menüler oluşturularak, güzel bir görsel kullanım aracı oluşturdum. En azından bence öyle oldu :D


huso.js
Bu javascrip dosyasında ajax ile formdan gerekli bilgileri php sayfama yönlendirip işlemleri yaptırıyor, sonrasında da dönen sonuçları ekrana veriyorum. Bu aşamada sayfamız yenilenmiyor.






     kayit.php
   Şimdi sıra geldi asıl işi yapan kodlarımıza. Forma girilen verileri huso.js aracılığı ile kayit.php sayfamıza    yolladık. Burada belirli parametreler aracılığı ile istenilen işlemleri gerçekleştiriyoruz.




Çalışmanın dosyalarına BURADAN ulaşabilirsiniz.

Tekrar etmekte fayda görüyorum. Kodları anlamaya çalışmak sizlerin yararına olacaktır. Herhangi bir sorunuz olursa iletişim kısmından bana ulaşabilirsiniz.

Çalışmalarınız da kolaylıklar diliyorum ;)
Read More...
 
Copyright (c) 2012 Hüseyin KÜÇÜK
Php Yazılım Uzmanı, Öğretim Teknoloğu, Toplum Gönüllüsü