• 24-10-2012, 12:06:45
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?
    $sayfa=$_GET["s"];
    $dil = $_GET['lang'];
    
    if(empty($_GET['lang'])) 
    	$dil = 'tr' ;
    
    if(empty($_GET['s'])) 
    	$sayfa = 'anasayfa' ;
    
    
    
    if($_GET['lang'] == 'en') { 
    	echo 'ingilizce geldi';	
         }
    	  
    elseif ($_GET['lang']== 'ger') {
    	echo 'almaca geldi'; 
        }
    	 
    elseif ($_GET['lang']== 'tr') {
    	echo 'türkçe geldi';
    	}
    ?>
    
    <?php
    
        $sayfa=$_GET["s"];
        switch($sayfa){	
            case "anasayfa";
                include("$dil/ana.php");
            break;
            case "birinci";
                include("$dil/birinci.php");
            break;
            case "ikinci";
                include("$dil/ikinci.php");
            break;
    		case "ucuncu";
                include("$dil/ucuncu.php");
            break;
        }
    ?>
    şeklinde kodlarım var.

    tarayıcının adres satırına

    index.php?lang=tr&s=anasayfa

    şeklinde yazdığımda verdiği sonuç

    türkçe geldi türkçe ana sayfa bu olacak yani istediğimi yapıyor. ama ben işin başına bir if kontrolü koymaya çalıştım. eğer sayfa ve dil değişkenleri boş geliyorsa tr ve anasayfa kabul et. ama ne hikmetse etmiyor. yani açılışta türkçe geldi türkçe ana sayfa bu olacak yazması gerekirken hiçbirşey yazmıyor. ama elle index.php?lang=tr&s=anasayfa yazınca istediğimi veriyor.

    şeytan bunun neresinde?
  • 24-10-2012, 12:13:09
    #2
    if(empty($_GET['lang']))
    $dil = 'tr' ;
    $_GET['lang'] = 'tr' ;

    yaparsan istediğini elde edersin
  • 25-10-2012, 14:08:46
    #3
    <?
    $sayfa=$_GET["s"];
    $dil = $_GET['lang'];
    
    if(empty($_GET['lang'])) {
    	$dil = 'tr' ;
    	$_GET['lang'] = 'tr' ; }
    
    if(empty($_GET['s'])) {
    	$sayfa = 'anasayfa' ;
    	$_GET['s'] = 'anasayfa' ; } 
    
    ?>
    if kontrolünü kaldırdım mı ve tarayıcıya index.php?lang=tr&s=anasayfa

    yazdığım zaman çalışıyor ama direk index.php çalışmıyor

    ikinci bir kontrol daha koymam gerekti ama şu if mevzusunu çözemedim.

    lang ve s ile gelen veri yoksa tr ve anasayfa olarak davranmaını sağlayamadım var mıdır yol gösterecek?
  • 25-10-2012, 15:51:59
    #4
    Üyeliği durduruldu
    Daha önce buna benzer bir çalışmam olmuştu incelersen belki bir faydası olur senin kodlaman ile bire bir uyuşmuyor...
    if ($_GET){
    if($_GET['Dil']=="tr"){
    include 'include/tr.php';
    }else if($_GET['Dil']=="en"){	
    include 'include/en.php';
    }else{
    include ("include/tr.php");	
    }}else {include ("include/tr.php");}
    Include edilmiş dosyalarda tr ye ait değişkenler duruyor durumda.
  • 25-10-2012, 16:58:56
    #5
    <?
    $sayfa=$_GET["s"];
    $dil = $_GET['lang'];
    
    if (!$sayfa || !$dil){
    	header('Location:index.php?lang=tr&s=anasayfa');
    				}else {
    
    ?>
    bu şekilde bir çözüm buldum ama get değerleri yollatmayı tercih ederdim açıkcası
  • 25-10-2012, 17:13:24
    #6
    elseif ($_GET['lang'] != 'ger') && ($_GET['lang'] != 'en') {
        echo 'türkçe geldi';
        }
            default:
                include("$dil/ana.php"); 
            break;
  • 26-10-2012, 22:03:10
    #7
    <?php
    	if(!isset($_GET['lang']) || empty($_GET['lang']) || $_GET['lang'] == ''):
    		$dil = 'tr';
    	else:
    		$dil = $_GET['lang'];
    	endif;
    ?>
    Bu şekilde kontrol edersen, sanırım sorun kalkar ortadan. Ayrıca şöyle bir yöntemi de tavsiye ederim:

    <?php
    	$dil = array(
    		'tr'=>'tr/anasayfa.php',
    		'en'=>'en/home.php'
    		);
    	if(array_key_exists($_GET['lang'],$dil))
    		include($_GET['lang']);
    	else
    		include($dil['tr']);
    ?>
  • 26-10-2012, 23:28:42
    #8
    <?php 
        if(!isset($_GET['lang']) || empty($_GET['lang']) || $_GET['lang'] == ''): 
            $dil = 'tr'; 
        else: 
            $dil = $_GET['lang']; 
        endif; 
    ?>
    bu kodda sadece lang kontrolü yapıp değer atıyor. ama benim yaptığım durumda hem lang hemde s kontrolü yapması gerekiyor.

    asıl sıkıntım iki kontrolü bir araya sokmakta oldu benim
  • 26-10-2012, 23:46:11
    #9
    Bu durumda aynı kontrolü ikinci defa yapabilirsiniz.

    <?php
    if(!isset($_GET['s']) || empty($_GET['s']) || $_GET['s'] == '')
    	$s = 'anasayfa';
    else
    	$s = $_GET['s'];
    	
    if(!isset($_GET['lang']) || empty($_GET['lang']) || $_GET['lang'] == '')
    	$dil = 'tr';
    else
    	$dil = $_GET['lang'];
    ?>