• 29-04-2019, 16:33:07
    #1
    Merhaba arkadaşlar, sitede dil seçiminden sonra kullanıcının seçtiği dili hatırlatmak için nasıl bir kod kullanıyoruz?
    İnternette bir kaç örnek bakıp denedim ancak olmadı. Örnek: setcookie('lang', $lang, time() + (3600 * 24 * 30));
    Kullandığım bu örnek kod > error_log dosyasında şöyle bir hata veriyor.

    [29-Apr-2019 13:19:43 UTC] PHP Notice: Undefined variable: lang in /home/m7076t41cakb/public_html/1/languages.php on line 13
    Örneğin Varsayılan dil İngilizce - Türkçe dil seçeneğini seçtim ancak sayfayı/tarayıcıyı kapattım 1 saat sonra geri geldim sayfa daha önce seçtiğim dilde açılsın istiyorum.

    index.php
    <?php require 'languages.php';?>
    
    <!doctype html>
    <html lang="en">
    <head>
    
    <!-- Meta Settings -->
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Language" content="<?=$lang['GLOBAL_LANGUAGE_CODE']?>" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <!-- Meta Settings END -->
    
    <title><?=$lang['PAGE_TITLE']?></title>
    <link href="favicon.ico" rel="icon" >
    
    <h1 class="title"><b><?=$lang['MAIN_TITLE']?></b></h1>
    <p class="description font-white"><?=$lang['MAIN_DESCRIPTION']?></p>
    <p class="description font-white"><strong><?=$lang['MAIN_THANK_YOU']?></strong></p>
    </body>
    </html>
    languages.php
    <?php
    
    # Session başlat
    session_start();
    
    # Dil seçimi yapılmışsa
    if( isset($_GET['lang']) ) {
    
    # Dil seçimini session'a ata
    $_SESSION['lang'] = $_GET['lang'];
    
    # Kullanıcı seçimini 1 saat boyunca hatırla
    
    # Anasayfa'ya yönlendir.
    header("Location:index.php");
    }
    
    # Seçili dili kontrol ediyoruz
    
    elseif (isset($_SESSION['lang']) && $_SESSION['lang'] == "en") {
    $lang_file="en";
    }
    
    elseif (isset($_SESSION['lang']) && $_SESSION['lang'] == "tr") {
    $lang_file="es";
    }
    
    elseif (isset($_SESSION['lang']) && $_SESSION['lang'] == "fr") {
    $lang_file="fr";
    }
    
    else {
    
    # Eğer dil seçilmemişse varsayılan dilimiz kullanılsın
    $lang_file="en";
    }
    
    include 'languages/'.$lang_file.'.php';
    
    ?>
    tr.php
    <?php
    
    $lang=array(
    
    // Common
    "PAGE_TITLE" => "Bakım Modu",
    "PAGE_LOADING" => "Yükleniyor...",
    
    // Languages
    "GLOBAL_LANGUAGE_CODE" => "tr",
    "SELECTED_LANGUAGE_NAME" => "Türkçe",
    "SELECTED_LANGUAGE_FLAG" => "tr.svg",
    
    // Main
    "MAIN_TITLE" => "Yenileniyoruz",
    "MAIN_DESCRIPTION" => "Web sitemiz şu anda zamanlanmış bir bakımdan geçiyor. Lütfen belirtilen tarihte tekrar ziyaret edin.",
    "MAIN_THANK_YOU" => "Anlayışınız için teşekkür ederiz.",
    
    // CountDown
    "COUNTDOWN_DAYS" => "Gün",
    "COUNTDOWN_HOURS" => "Saat",
    "COUNTDOWN_MINS" => "Dakika",
    "COUNTDOWN_SECONDS" => "Saniye",
    
    // Newsletter
    "NEWSLETTER_EMAIL_PLACEHOLDER" => "Geçerli bir e-posta adresi girin",
    "NEWSLETTER_SEND_BUTTON" => "Gönder",
    
    // Social
    "SOCIAL_FACEBOOK_TITLE" => "Bizi Facebook'ta takip edin",
    "SOCIAL_TWITTER_TITLE" => "Bizi Twitter'da takip edin",
    "SOCIAL_INSTAGRAM_TITLE" => "Bizi Instagram'da takip edin",
    "SOCIAL_WHATSAPP_TITLE" => "Whatsapp ile mesaj gönder",
    );
    ?>
  • 29-04-2019, 16:41:06
    #2
        if(empty($_COOKIE['COOKIE_KEY'])) {
            setcookie('COOKIE_KEY', rand(1,9999999), time() +86400, '/');
        }
    
        if (!empty($_COOKIE['COOKIE_KEY'])) {
            $cookie = $_COOKIE['COOKIE_KEY'];
        } else {
            $cookie = '';
        }
        
        $cookie_users = $db -> query("SELECT * FROM cookie_users WHERE rand_id = '".$cookie."'")->fetch();
        
        if (empty($cookie_users['lang'] )) {
            if (!empty($settings['lang'])) {
                require("lang/".$settings["lang"].".php");
            } else {
                require("lang/en.php");
            }
        } else {
            require("lang/".$cookie_users["lang"].".php");
        }
        
        $time = time();
        
        if (!empty($cookie)) {
        
            if (empty($cookie_users)) {
                
                $query = $db->prepare("INSERT INTO cookie_users SET rand_id = ?, date = ?");
                $insert = $query->execute(array($cookie, $time));
                
            } else {
                
                if (!empty($_SESSION['session'])) {
                    $query = $db->prepare("UPDATE cookie_users SET up_date = :udat, user_id = :uid WHERE rand_id = :ids");
                    $update = $query->execute(array("udat" => "".$time."","uid" => "".$users['id']."","ids" => "".$cookie.""));
                } else {
                    $query = $db->prepare("UPDATE cookie_users SET up_date = :udat WHERE rand_id = :ids");
                    $update = $query->execute(array("udat" => "".$time."","ids" => "".$cookie.""));
                }
                
            }
            
        }