• 20-02-2013, 16:35:10
    #1
    Çok garip bir hatayla karşı karşıya kaldım ve çıldırmak üzereyim.

    $a= mysql_real_escape_string(htmlspecialchars(trim($_POST["name"])));
        echo $a;
    Örneğin; ahmet yazdığımda ekrana yazıyor fakat ğ gibi karakterler yazının içine girdiği zaman ekrana boş yazıyor.

    sebebi nedir ve nasıl düzeltebilirim?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:35:10 -->-> Daha önceki mesaj 15:45:46 --

    arkadaşlar çok önemli.Tıkandım kaldım.Bilgisi olan yokmu?
  • 20-02-2013, 16:43:38
    #2
    Karakter setinizi kontrol ettiniz mi ? Dosyanizin BOM durumu nedir ?
  • 20-02-2013, 16:45:11
    #3
    Reveloper
    $a= mysql_real_escape_string(htmlspecialchars(trim($_POST["name"], 'UTF-8'))); 
        echo $a;
    olmazsa eğer önerim htmlspecialchars yerine htmlentities kullanmanız.

    ve sayfa kodlama dilinizi UTF-8 Bom'suz yaptınız mı ?

    yada bu kod işinizi görür:

    $a= mysql_real_escape_string(htmlentities(trim($_POST["name"]))); 
        echo $a;
    mysql_real_escape_string fonksiyonununda sağlıklı çalışması için sayfanın mysql'e bağlanması gereklidir..
  • 20-02-2013, 16:53:13
    #4
    Burti adlı üyeden alıntı: mesajı görüntüle
    $a= mysql_real_escape_string(htmlspecialchars(trim($_POST["name"], 'UTF-8'))); 
        echo $a;
    olmazsa eğer önerim htmlspecialchars yerine htmlentities kullanmanız.

    ve sayfa kodlama dilinizi UTF-8 Bom'suz yaptınız mı ?

    yada bu kod işinizi görür:

    $a= mysql_real_escape_string(htmlentities(trim($_POST["name"]))); 
        echo $a;
    mysql_real_escape_string fonksiyonununda sağlıklı çalışması için sayfanın mysql'e bağlanması gereklidir..
    $a= mysql_real_escape_string(htmlspecialchars(trim($_P OST["name"]),ENT_QUOTES,'ISO-8859-1'));

    bu şekilde sayfadaki problemi çözdüm fakat veritabanında hiç bir şekilde türkçe karakterler görünmüyor.

    veritabanı charsetim utf8_turkish_ci
  • 20-02-2013, 17:08:23
    #5
    Reveloper
    Durdane adlı üyeden alıntı: mesajı görüntüle
    $a= mysql_real_escape_string(htmlspecialchars(trim($_P OST["name"]),ENT_QUOTES,'ISO-8859-1'));

    bu şekilde sayfadaki problemi çözdüm fakat veritabanında hiç bir şekilde türkçe karakterler görünmüyor.

    veritabanı charsetim utf8_turkish_ci
    utf8_general_ci kullanın ve php kodda : ISO-8859-1 yerine ISO-8859-9 kullanın
  • 20-02-2013, 17:15:10
    #6
    Burti adlı üyeden alıntı: mesajı görüntüle
    utf8_general_ci kullanın ve php kodda : ISO-8859-1 yerine ISO-8859-9 kullanın
    dediğiniz gibi veritabanını utf8_general_ci yaptım config dosyasında set names utf8 i kaldırınca veritabanına ğ yi ððð olarak kaydetmeye başladı.Kaldırmazsam eğer ı ğ gibi harfleri hiç yazmıyor veritabanına.
  • 20-02-2013, 17:23:35
    #7
    Reveloper
    Durdane adlı üyeden alıntı: mesajı görüntüle
    dediğiniz gibi veritabanını utf8_general_ci yaptım config dosyasında set names utf8 i kaldırınca veritabanına ğ yi ððð olarak kaydetmeye başladı.Kaldırmazsam eğer ı ğ gibi harfleri hiç yazmıyor veritabanına.
    Örnek veriyorum size:

    MYSQL Bağlantısı
    $server = "localhost"; 
    $db_user = "root"; 
    $db_pass = ""; 
    $database = "veritabani";
    $selampanpa=[MENTION=16908]MysqL[/MENTION]_connect($server, $db_user, $db_pass); 
    $aleykumselampanpa=[MENTION=16908]MysqL[/MENTION]_select_db($database);
        mysql_select_db($database);
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci"); 
    if(!$selampanpa) { die("DB Ayarlarından Emin Olun"); }
    if(!$aleykumselampanpa) { die("DB Ayarlarından Emin Olun"); }


    Sayfanızın kodlaması (UTF-8 Bom'suz) [Notepad++'dan Kodlama> utf-8 bom'suz kodlamasına dönüştür]

    MySQL Karşılaştırması: utf8_general_ci

    Header META:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • 20-02-2013, 17:24:43
    #8
    Burti adlı üyeden alıntı: mesajı görüntüle
    Örnek veriyorum size:

    MYSQL Bağlantısı
    $server = "localhost"; 
    $db_user = "root"; 
    $db_pass = ""; 
    $database = "veritabani";
    $selampanpa=[MENTION=16908]MysqL[/MENTION]_connect($server, $db_user, $db_pass); 
    $aleykumselampanpa=[MENTION=16908]MysqL[/MENTION]_select_db($database);
        mysql_select_db($database);
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET CHARACTER SET utf8_general_ci"); 
    if(!$selampanpa) { die("DB Ayarlarından Emin Olun"); }
    if(!$aleykumselampanpa) { die("DB Ayarlarından Emin Olun"); }


    Sayfanızın kodlaması (UTF-8 Bom'suz) [Notepad++'dan Kodlama> utf-8 bom'suz kodlamasına dönüştür]

    MySQL Karşılaştırması: utf8_general_ci

    Header META:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    deniyorum
  • 20-02-2013, 17:26:23
    #9
    Reveloper
    @MysqL yazan yerde mysql yazması gerekli r10 otomatik olarak güvenlik önlemi için düzenlemiş