PHP dilli sitesi

4 Cevap php

Ben bu sitenin untiny.com gibi OTURUMLARIN dayalı PHP ile çok dilli bir site yapmak istiyorum

Bu kod ile deneyin ama çalışmıyor:

    <?

session_start();
$lang = $_GET['lang'];
if (!isset($lang)) {
    include ('ar/language.php');
    $lang = "ar";
}
else if ($lang == "en" ) {include ('en/language.php'); $SESSION["lang"] = "en"; header("Location: http://it2.in/");}
else if ($lang == "ar" ) {include ('ar/language.php'); $SESSION["lang"] = "ar"; header("Location: http://it2.in/");}
else if ($lang != "ar" || "en") {header("Location: http://it2.in/"); header("Location: http://it2.in/");}

?>

Anyone can help me. Thanks


Thank you all. But @ now nothing working, Are there other ideas.

4 Cevap

Muhtemelen sorunun son çizgidedir. Bu gibi çalışması gerekir:

else if ($lang != "ar" || $lang != "en") {header("Location: http://it2.in/");}

Ayrıca ben size mevcut dilleri depolamak için ayrı bir dizi oluşturmak için öneririm

$known_languages = array('en', 'ar'); ## just add new language here when you need
session_start();

## if language is stored in SESSION then use it, otherwise use GET params
if (array_key_exists('lang', $_SESSION)) {
    $lang = $_SESSION['lang'];
    include($lang.'/language.php'); 
    ## echo "You current language is <strong>$lang</strong>";
    include("page.php");
}
else {
    $lang = $_GET['lang'];

    ## if language is not set or is not available, then use default value
    if (!isset($lang) || !in_array($lang, $known_languages) {
        $lang = "ar";
    }
    include($lang.'/language.php'); 
    $SESSION["lang"] = $lang; 
    header("Location: http://it2.in/");
}

Tam olarak ne işe yaramazsa açıklayabilir misiniz?

Lütfen eğer-tablosunda bir hata var. Eğer string "tr" ile karşılaştırma sonucu ORlama çünkü else-eğer son, her zaman doğrudur. Bir başka deyim iş yapacak.

<?

	session_start();
	$lang = $_GET['lang'];
	if (!isset($lang)) {
	    include ('ar/language.php');
	    $lang = "ar";
	}
	else if ($lang == "en" ) {include ('en/language.php'); $SESSION["lang"] = "en"; header("Location: http://it2.in/");}
	else if ($lang == "ar" ) {include ('ar/language.php'); $SESSION["lang"] = "ar"; header("Location: http://it2.in/");}
	else {header("Location: http://it2.in/"); header("Location: http://it2.in/");}

?>
$lang= $_GET['lang'];
include $lang . "/language.php";

Varsayılan php bu tür içerir devre dışı bırakır, böylece elle etkinleştirmek zorunda kalacak.

Asıl soru: language.php ne olduğunu?

// en/language.php
$MESSAGES[0] = "Hello";
// es/language.php
$MESSAGES[0] = "Hola";
// fr/language.php

Sonra kod bunu:

print "<h1>" . $MESSAGES[0] . "</h1>";

Bu büyütmek değil, kafanı çok hızlı explote olacak (bekle, ileti 1023? Ya 1022? Ya 2149 mi?). IMHO daha iyi bir çözüm olduğunu ve yeni kodu olmadan yeni diller eklemek sağlar GetText, kodunuzu taşıma düşünün lütfen. İşte size bir başlangıç ​​verecek google dan ilk isabet. Eğer daha fazla bilgi gerekiyorsa, etrafında bakın lütfen. http://www.phpdig.net/ref/rn26.html

When you are using header function always consider using exit(); after it to stop the execution of the code

<?php
session_start();
$lang = $_GET['lang'];
if (!isset($lang)) {
    include ('ar/language.php');
    $lang = "ar";
}
else if ($lang == "en" ) {
include ('en/language.php');
$SESSION["lang"] = "en"; 
header("Location: http://it2.in/");
exit(); 
}
else if ($lang == "ar" ) {
include ('ar/language.php');
 $SESSION["lang"] = "ar"; 
header("Location: http://it2.in/");
exit();
}
else if ($lang != "ar" || $lang != "en") {
header("Location: http://it2.in/"); 
exit(); 
}

?>

şimdi size istedim sayfasına yönlendirileceksiniz edilmelidir :)