Я создал веб-сайт с 3 языками, и сайт работает нормально (localhost), но когда я загружаю его, по умолчанию используется язык EN, и всякий раз, когда я меняю язык в Интернете, скажем, с EN на FR, страница продолжаетсяэто lang в этом случае на FR и перенаправить меня на домашнюю страницу, а весь текст на сайте - на FR, это нормально, но после этого, когда я пытаюсь нажать, скажем, о нас, то сам по себе меняю обратно на язык по умолчанию, и покажи мне эту страницу (о нас), но по умолчанию lang ... Вот пример кода, как это выглядит ...
Это select.php, и я включаю этот файл на каждую страницу ...
<?php
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}
switch ($lang) {
case 'en':
$lang_file = 'lang.en.php';
break;
case 'fr':
$lang_file = 'lang.fr.php';
break;
case 'de':
$lang_file = 'lang.de.php';
break;
default:
$lang_file = 'lang.en.php';
}
include_once 'lang/'.$lang_file;
Это lang.en.php ...
$lang = array();
// menu
$lang['txt1'] = 'Home';
$lang['txt2'] = 'About Us';
$lang['txt3'] = 'Services';
$lang['txt4'] = 'Contact';
То же самое для двух других языков ...
и я просто помещаю в index.php это ...
<ul>
<li><a href="index.php"><em><b><?php echo $lang['txt1'];?></b></em></a></li>
<li><a href="about.php"><em><b><?php echo $lang['txt2'];?></b></em></a></li>
<li><a href="services.php"><em><b><?php echo $lang['txt3'];?></b></em></a></li>
<li><a href="contact.php"><em><b><?php echo $lang['txt4'];?></b></em></a></li>
</ul>
Когда по умолчанию используется lang, я могу нормально перемещаться, я могу без проблем переходить на любую страницу, но проблема в том,когда я пытаюсь изменить сайт на другой язык (языки), скажем, я нахожусь на странице www.example.com/about.php и хочу видеть эту страницу наСкажем, FR, сайт перенаправит меня на www.example.com/index.php?lang=fr (это нормально), и тогда я смогу увидеть FR lang на сайте, но только на домашней странице, но когда я попытаюсь перейти наwww.example.com/about.php затем сайт вернул lang по умолчанию, в данном случае EN ...
Странно то, что этот скрипт прекрасно работает на localhost ...
Есть идеи почему?
Обновление:
OUTPUT:
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => new lang value but not set in session [something_1] => something value to put in session )
<?php
session_start();
$lang = "lang value to put in session";
$something = "something value to put in session";
$_SESSION['lang'] = $lang;
$_SESSION['something_1'] = $something;
print_r($_SESSION);
$lang = "new lang value but not set in session";
$something = "new something value but not set in session";
print_r($_SESSION);
PHP не должен изменять второй массив
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => new lang value but not set in session [something_1] => something value to put in session )
Он должен выглядеть так:
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Любая идеяпочему?