• 14-05-2010, 21:24:54
    #1
    Merhaba arkadaşlar
    yeni tasarladıgım sitem için dil secenegi ekledim ve eger dil secilirse bunuda session ile hafızada tutuyorum..

    dil.php dosyam şu şekilde

    <?php
    session_start();
    
    // oturuma gore dil seciyoruz
    $secili_dil = $_SESSION["dil"];
    
    // eger dil oturumda secili degilse
    if( empty($secili_dil) ){
      // dili browser ayarina gore otomatik sectiriyoruz.
      $secili_dil = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
      if( !file_exists("diller/".$secili_dil.".php") ){
        // eger o dile ait ceviri dosyasi yoksa site icin varsayilan dili sectirelim.
        // bizim site icin turkce olsun
        $secili_dil = 'tr';
      }
    }
    
    // oturuma kaydedelim
      $_SESSION["dil"]=$secili_dil;
    
    // simdide ceviri dosyasini yukleyelim
    include("diller/".$secili_dil.".php");
    ?>
    Bu dil.php dosyasını index.php de tüm kodların üstünde include olarak çağırmışım

    Şimdi sorunum şudur;
    Dosyalar oluşturulurken set ANSI olarak seçilmişse ve kodlarda
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-9">
    ile set belirtilmişse herşey sorunsuz çalışıyor...

    Fakat benim işlemlerime göre herşeyin UTF-8 olması gerekiyor
    dosyaları oluştururken (notdefteri ile yaptım) seti UTF-8 yapıyorum
    ve kodlarda ise
    <META http-equiv="Content-Type" content="text/html; charset=utf-8"> olarak belirtiyorum
    böyle yapınca session_start hata veriyor.

    Hata şudur:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\AppServ\www\ysite\index.php:1) in D:\AppServ\www\ysite\dil.php on line 2

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\AppServ\www\ysite\index.php:1) in D:\AppServ\www\ysite\dil.php on line 2
     

    Neden iso'da sorunsuz çalışırken UTF-8 yapınca hata alıyorum
    konu hakkında bilgisi olan arkadaşlar tecrubelerini yazarsa çok sevinirim..

    Baya zamandır arıştırıyorum ama çözüm bulamadım
    ob_start ekle dediler olmadı
    utf-8 BOM olmaması lazım dediler Notepad++ indirip bomsuz yaptım yine olmadı

  • 14-05-2010, 21:37:57
    #2
    Üyeliği durduruldu
    sayfa charseti utf 8 yap. sayfayı utf 8 bom suz kaydet
    <?php tagından hemen sonra ekle
    ob_start(); session_start();

    tekrar hata verirse başka hostingde deneyin.
    sunucu kaynaklı olabilir.
  • 14-05-2010, 22:10:11
    #3
    Notepad++ ile bomsuz utf-8 yaptım
    sayfa kodlarında meta ile utf-8 olarak belirttim
    ob_start(); deneme yaparak session_start(); 'tın ustune ve altına ekledim
    olmadı olmadı ve olmadı..

    Bide ben şuanda localhostta çalışıyorum
    ne bela işmiş yahu bende bu sorunu en sona bıraktım basit bişe sandım
    arama sürem boyunca yeni bir script yazardım şimdiye

    Şimdi iso yapacam herseyi ve işin yoksa verileri tek tek iconv ile utf yap off off
  • 14-05-2010, 23:08:17
    #4
    Üyeliği durduruldu
    SurucLu adlı üyeden alıntı: mesajı görüntüle
    Notepad++ ile bomsuz utf-8 yaptım
    sayfa kodlarında meta ile utf-8 olarak belirttim
    ob_start(); deneme yaparak session_start(); 'tın ustune ve altına ekledim
    olmadı olmadı ve olmadı..

    Bide ben şuanda localhostta çalışıyorum
    ne bela işmiş yahu bende bu sorunu en sona bıraktım basit bişe sandım
    arama sürem boyunca yeni bir script yazardım şimdiye

    Şimdi iso yapacam herseyi ve işin yoksa verileri tek tek iconv ile utf yap off off
    include ettiğiniz bir ayar sayfası vardır muhakkak ona
    mysql_query("SET NAMES 'utf-8' COLLATE 'utf8_turkish_ci'");
    ekleyip denermisiniz, başka bir sayfada dil tanımı yapmayın
  • 15-05-2010, 02:08:54
    #5
    notepad editörü ile açıp ANSI kısmını UTF-8 yapıp kaydedin düzelecektir.