• 16-03-2013, 17:36:35
    #1
    Reveloper
    Merhaba,

    Genel problemdir bu TR karakter sorunu ve buna bir dur dememiz gerekli basit bir ders ile

    İlk olarak Veritabanımızın karakter kodu çok önemlidir. PHPMyAdmin veya kullandığınız SQL derleyicinize giriş yapınız. Yapı'sındaki karşılaştırma kodunu "utf8_general_ci" olarak değiştiriniz.

    İkinci adımımız ise config dosyamız yani SQL'e bağlanırken kullandığımız konfigürasyon ve güvenli şifrelerimizin yer aldığı dosyamız.

    Bağlantı kurarken ben muhakkak şunu kullanırım:
    <?php
    $server = "localhost"; 
    $db_user = "VeritabanıUser"; 
    $db_pass = "Şifre"; 
    $database = "VeritabanıAdı";
    $nelan=mysql_connect($server, $db_user, $db_pass); 
    $helan=mysql_select_db($database);
        mysql_select_db($database);
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci"); 
    
    if(!$nelan) { die("Veritabanı Kullanıcı Adı, Şifre veya Server adını kontrol ediniz."); }
    if(!$helan) { die("Veritabanı veya Kullanıcısına erişim sağlanamamaktadır."); }
    ?>
    eğer varolanınızda varsa mysql_connect'ten sonra ekleyiniz:
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci");
    Üçüncü adımımız ise .php uzantılı veritabanından bilgi çeken sayfamızın kodlaması:

    Sayfamızı muhakkak Notepad++ veya alternatifi bir program ile UTF-8 BOM'suz kodlamaya çeviriyoruz. Bunu nasıl yaparız. Programımızı yükleyerek .php dosyamızı notepad++'da açarız ardından üst menüde yer alan Kodlama > UTF-8 (BOM'suz) Kodlamasına Dönüştür diyerek kodlamamızı UTF-8 yaparız.

    Son adımımız ise: XHTML Head etiketlerimizdir: <html> </html> diye başlamadan önce:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    diye başlarsanız sayfamızın charset ve uyumu tam olur sıkıntı yaşamayız

    MySQLi için TR karakter sıkıntısı yaşamadan bağlantı:

    <?php
    header('Content-Type: text/html; charset=utf-8');
     
    $server = "localhost";  
    $db_user = "root";  
    $db_pass = "";  
    $database = "emniyet"; 
    
    $mysqlcon=mysqli_connect($server, $db_user, $db_pass, $database);  
    mysqli_error($mysqlcon);
    $mysqlcon->set_charset("utf8")
    ?>
  • 03-11-2014, 11:48:30
    #2
    Reveloper
    MySQLi içinde ekledim arkadaşlar
  • 05-09-2017, 18:46:22
    #3
    Üyeliği durduruldu
    Teşekkür ederim. R10+ verecektim ama konu da yok.
  • 09-09-2017, 17:52:25
    #4
    Üyeliği durduruldu
    EmraCan adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim. R10+ verecektim ama konu da yok.
    İyi hortlatmışsın dostum PDO kullanmanı tavsiye ederim.
  • 24-09-2017, 04:12:15
    #5
    Burti adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Genel problemdir bu TR karakter sorunu ve buna bir dur dememiz gerekli basit bir ders ile

    İlk olarak Veritabanımızın karakter kodu çok önemlidir. PHPMyAdmin veya kullandığınız SQL derleyicinize giriş yapınız. Yapı'sındaki karşılaştırma kodunu "utf8_general_ci" olarak değiştiriniz.

    İkinci adımımız ise config dosyamız yani SQL'e bağlanırken kullandığımız konfigürasyon ve güvenli şifrelerimizin yer aldığı dosyamız.

    Bağlantı kurarken ben muhakkak şunu kullanırım:
    <?php
    $server = "localhost"; 
    $db_user = "VeritabanıUser"; 
    $db_pass = "Şifre"; 
    $database = "VeritabanıAdı";
    $nelan=mysql_connect($server, $db_user, $db_pass); 
    $helan=mysql_select_db($database);
        mysql_select_db($database);
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci"); 
    
    if(!$nelan) { die("Veritabanı Kullanıcı Adı, Şifre veya Server adını kontrol ediniz."); }
    if(!$helan) { die("Veritabanı veya Kullanıcısına erişim sağlanamamaktadır."); }
    ?>
    eğer varolanınızda varsa mysql_connect'ten sonra ekleyiniz:
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci");
    Üçüncü adımımız ise .php uzantılı veritabanından bilgi çeken sayfamızın kodlaması:

    Sayfamızı muhakkak Notepad++ veya alternatifi bir program ile UTF-8 BOM'suz kodlamaya çeviriyoruz. Bunu nasıl yaparız. Programımızı yükleyerek .php dosyamızı notepad++'da açarız ardından üst menüde yer alan Kodlama > UTF-8 (BOM'suz) Kodlamasına Dönüştür diyerek kodlamamızı UTF-8 yaparız.

    Son adımımız ise: XHTML Head etiketlerimizdir: <html> </html> diye başlamadan önce:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    diye başlarsanız sayfamızın charset ve uyumu tam olur sıkıntı yaşamayız

    MySQLi için TR karakter sıkıntısı yaşamadan bağlantı:

    <?php
    header('Content-Type: text/html; charset=utf-8');
     
    $server = "localhost";  
    $db_user = "root";  
    $db_pass = "";  
    $database = "emniyet"; 
    
    $mysqlcon=mysqli_connect($server, $db_user, $db_pass, $database);  
    mysqli_error($mysqlcon);
    $mysqlcon->set_charset("utf8")
    ?>
    Teşekkürler. Deneyeceğim
  • 24-09-2017, 05:57:23
    #6
    Üyeliği durduruldu
    orji adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler. Deneyeceğim
    Ops. Abi bi' dakika sakin ol. Bu çok eski bir konu ve mysql_'in desteği uzun süre önce bitti. PDO gibi alternatif kanallar kullanılıyor şu an.
  • 24-09-2017, 06:03:37
    #7
    Mysql in devrinin bittiğinden çoğu kişinin haberi yok hâlâ mysql ile kodlayanlar var. Hosting firmaları php 7ye geçiyor yavaş yavaş php 7 de mysql desteklenmiyor. İlerde karşısında beyaz bir ekran görmek istemeyen kişiler pdoya geçmeli.
  • 24-09-2017, 11:41:39
    #8
    Ofisimo adlı üyeden alıntı: mesajı görüntüle
    Mysql in devrinin bittiğinden çoğu kişinin haberi yok hâlâ mysql ile kodlayanlar var. Hosting firmaları php 7ye geçiyor yavaş yavaş php 7 de mysql desteklenmiyor. İlerde karşısında beyaz bir ekran görmek istemeyen kişiler pdoya geçmeli.
    Biraz düzeltelim. Mysql in devri bitti yanlış olmuş. Mysql bir veritabanı sunucusudur. Pdo ise php nin nesne tabanlı programlama sınıfıdır. Yani Pdo ile mysql e, postgresql e, oracle a yada başka veritabanı sunucularına bağlanabilirsiniz.

    Yani sonuç olarak yine mysql kullanabiliriz ki dünyanın yarısı mysql kullanıyor ve kullanmaya devam edecek, ama bağlanırken mysql connect fonksiyonları yerine Pdo sınıfını kullanmamız gerekiyor. Php mysql desteğini değil mysql e eski yoldan bağlanma fonksiyonları için desteğini kesiyor.

    Bu da bir düzeltme olsun yanlış bilgi yayılmasın. bol şans.
  • 24-09-2017, 16:47:37
    #9
    bgencacat adlı üyeden alıntı: mesajı görüntüle
    Ops. Abi bi' dakika sakin ol. Bu çok eski bir konu ve mysql_'in desteği uzun süre önce bitti. PDO gibi alternatif kanallar kullanılıyor şu an.
    Biz daha yeniyiz. sizlerden öğreniyoruz. Teşekkürler

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:47:37 -->-> Daha önceki mesaj 16:39:35 --

    mpoy8 adlı üyeden alıntı: mesajı görüntüle
    ama bağlanırken mysql connect fonksiyonları yerine Pdo sınıfını kullanmamız gerekiyor. Php mysql desteğini değil mysql e eski yoldan bağlanma fonksiyonları için desteğini kesiyor.
    Yeni Sezon Daha Şenlikli Olacak Öyleyse...