• 23-12-2013, 16:55:45
    #1
    Merhaba arkadaşlar,

    Ben yapmış olduğum siteye dil seçeneği ekledim mevcut bayraklara tıklayarak "tr" veya "en" olarak dil seçimi yaptırıyorum ama kullanıcı brovser ı kapatıp açtığında seçmiş olduğu dil gelmiyor. Yapmak istediğim kullanıcı bir dil seçimi yaptığında kullanıcının ip adresine göre bunu veri tabanına kayıt etsin aynı ip yine giriş yaptığında ip adresine kayıtlı olan dile göre sitenin dili seçili gelsin bu konuda beni yönlendirirmisiniz hangi mantıkla ilerlemem lazım
  • 23-12-2013, 17:01:41
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    setcookie()
  • 23-12-2013, 17:09:47
    #3
    İRoyal adlı üyeden alıntı: mesajı görüntüle
    setcookie()
    Ben aşağıdaki gibi çağırıyordum dilleri setcookie() yi nasıl uygulkarım bu sisteme?

    <?php 
    session_start(); 
    	include("baglan.php");
    if ($_SESSION["dil"]) {
    	include("dil/tr.php");
    }
    else {
    	include("dil/".$_SESSION["dil"].".php");
    }
    ?>
  • 23-12-2013, 17:14:20
    #4
    Tabletten yazamadım kusura bakmayın.
    Örnek; http://php.net/setcookie
  • 23-12-2013, 17:41:14
    #5
    Kullanımı : sayfa.php?dildegistir=en yada tr

    <?php 
    session_start(); 
       include("baglan.php");
    
       if( isset( $_GET["dildegistir"] ) ) { setcookie("dil",$_GET["dildegistir"],time()*60*60*24*365); }
    	
       // Eğer dil isimli bir cookie yoksa default olarak tr adında dil cookiesi atıyoruz 1 yıl süre ile.
       if( !isset( $_COOKIE["dil"] ) ) { setcookie("dil","tr",time()*60*60*24*365); }
       
       // Cookie mevcutsa ve tr ise
       if( isset( $_COOKIE["dil"] ) AND $_COOKIE["dil"] == "tr" ) {
       
    		require_once("dil/tr.php");
       
       }elseif( isset( $_COOKIE["dil"] ) AND $_COOKIE["dil"] == "en" ){ 
       // Cookie mevcutsa ve en ise
       
    		require_once("dil/en.php");
       
       }
    
    ?>
  • 23-12-2013, 17:51:15
    #6
    TR bayrağa tıkladığında fonksiyona
    <?php
    setcookie("dil", "tr");
    ?>
    ENG bayrağa tıkladığında
    <?php
    setcookie("dil", "en");
    ?>
    yazman yeterli.

    Sayfana ise
    <?php
    include ("dil/".$_COOKIE['dil'].".php");
    ?>
  • 23-12-2013, 19:53:30
    #7
    Maalesef olmadı

    Dil dosyalarımın orjinal halleri şu şekilde

    dil.php

    <?php 
    session_start();
    $dil = strip_tags($_GET['dil']);
    if ($dil == "tr" || $dil == "en") {
    	$_SESSION["dil"] = $dil;
    	header("Refresh: 0; URL={$_SERVER['HTTP_REFERER']}");
    }else {
    	header("Refresh: 0; URL={$_SERVER['HTTP_REFERER']}");
    }
     ?>
    tr.php

    <?php 
    $dil = array(
    "trdil"			=> "Türkçe",
    "endil" 			=> "İngilizce",
    );
     ?>

    en.php

    <?php 
    $dil = array(
    "trdil"			=> "Turkish",
    "endil" 			=> "English",
    );
     ?>
    Sayfa içerisinde dilleri çağırdığım kod


    <?php 
    session_start(); 
    	include("baglan.php");
    if ($_SESSION["dil"]) {
    	include("dil/tr.php");
    }
    else {
    	include ("dil/".$_COOKIE['dil'].".php");
    }
    ?>

    Dilleri Çağırdığım Link Yapısı


    <a href="/dil/dil.php?dil=tr"><img src="/images/tr.png" alt="<?php echo $dil["trdil"] ?>" title="<?php echo $dil["trdil"] ?>" /></a>
    <a href="/dil/dil.php?dil=en"><img src="/images/en.png" alt="<?php echo $dil["endil"] ?>" title="<?php echo $dil["endil"] ?>" /></a>
  • 24-12-2013, 15:43:38
    #8
    Güncel
  • 24-12-2013, 16:53:09
    #9
    ***$_SESSION["dil"] = $dil; bunların olduğu yere
    setcookie("dil","$dil",time()*60*60*24*365);

    değiştir

    çağırdığın sayfanıda bu şekilde düzenlersen sorun olmaz
    <?php
    session_start();
    ***include("baglan.php");
    if (!isset($_COOKIE["dil"])) {
    ***include("dil/tr.php");
    }
    else {
    ***include ("dil/".$_COOKIE['dil'].".php");
    }
    ?>