• 22-10-2012, 15:46:16
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar selamlar,

    Siteme dil eklemek istiyorum. Normal şartlarda bunu EN - GER gibi klasörler içine atar, bayraklara tıklandığında dilin değişmesini çok basit bir şekilde sağlardım. Ancak o şekilde olunca dil değiştirildiğinde direk o dilin ana sayfasına gider.

    Ben istiyorum ki ziyaretçi hangi sayfadaysa dil değiştirmek istediğinde yine o sayfanın değiştirilen dili gelsin.

    Bu mantıkla yola çıkarak

    <? 
    
    if($_GET['lang'] == en)
    
     header('Location:EN/index.php');
    
    elseif ($_GET['lang']== ger)
    
     header('Location:GER/index.php");
    
    elseif ($_GET['lang']== tr)
    
    ?>
    şeklinde kod yazdım. ama burada bir sorun var header fonksiyonu yerine echo "deneme yazısı"; komutunu kullandığımda çalışıyor ama header ile gitmiyor.

    Tabi bu arada biraz kafam da karışmadı değil. Bu konuda biraz yardım talebinde bulunacağım. Bu işi nasıl bir mantıkla veya nasıl bir yöntemle çözmem gerekir?
  • 22-10-2012, 15:56:59
    #2
    if($_GET['lang'] == 'en')
    {
        header('Location:EN/index.php');
        exit;
    }
    elseif ($_GET['lang']== 'ger')
    {
        header('Location:GER/index.php');
        exit;
    }
    elseif ($_GET['lang']== 'tr') 
    {
        header('Location:TR/index.php');
        exit;
    }
    kodlarda hata varmış gibi görünüyordu üstteki çalışmalı.
  • 22-10-2012, 15:57:30
    #3
    kullandığınız kod aynen bu şekilde ise
    header('Location:GER/index.php");
    burada açılışı ' ile yapıp " ile kapatmışsınız.
  • 22-10-2012, 16:24:13
    #4
    yardımlar için teşekkür ediyorum.

    bu arada saçma bir bug buldum. kodlarda sorun yok benim local de MAMP çalışıyor. miscel'in verdiği kodlar local de çalışmadı ama host'a atınca çalıştı önce teşekkür ediyorum sonrada sistem de mamp'ı siliyorum
  • 22-10-2012, 16:31:40
    #5
    Şöyle yapın (zaten büyük ihtimal hazır classlar vardır phpclasses'a göz atabilirsiniz):
    Her dil için bir .php dosyası hazırlayın. Kolaylık olması için bir dizi içinde tutun.
    en.lang.php
    $dil['welcome'] = 'Welcome';
    $dil['logout'] = 'Logout';
    ..
    tr.lang.php
    $dil['welcome'] = 'Hoşgeldiniz';
    $dil['logout'] = 'Çıkış';
    ..

    Seçilen dili cookie veya session ile hafızada tutun.
    $_SESSION['dil'] olsun.

    sayfalardan çağırırken
    <?
    include ('lang/'.$_SESSION['dil'].'.lang.php');
    ?>
    <html>
    <head>
    <title><?=$dil['welcome']?></title>
    </head>
    <body><a href="logout.php"><?=$dil['logout']?></a></body>
    </html>

    Şeklinde yazdırırsınız. ($_SESSION['dil'] güvenlik eklenmelidir. Yoksa rfi-lfi açıkları verilebilir.)
  • 22-10-2012, 17:15:42
    #6
    hocam bunu bende düşündüm ama içeriklerde çok metin var. dolayısyla bu sistem sanki biraz sıkıntılı olur diye düşünüyorum. yanılıyor muyum?