раздражает перезапись сессии - PullRequest
1 голос
/ 23 октября 2009

Я делаю многоязычный веб-сайт и решил использовать сеансы для запоминания текущего языка, в целом он работает так, как предполагалось, но есть одна ошибка, которую я не могу исправить. 1) я загружаю страницу и она правильно отображается в Болгарии 2) я добавляю '& lang = en', чтобы проверить, работает ли он правильно, и он делает 3) когда я убираю '& lang = en' и обратно к болгарскому языку, когда он не должен оставаться на английском

вот что есть в шапке страницы

   if(isset($_GET['lang'])){
    $lang = htmlspecialchars($_GET['lang']);
lang($lang);
}
if(!isset($_SESSION['slang'])){
    lang('bg');
}else {
    lang($_SESSION['slang']);
} 

и вот моя функция, которая обрабатывает переключение языка

function lang($lang=''){

        if($lang=='bg'){
            $_SESSION['slang'] = 'bg' ;
            include_once('./includes/bulgarian.php');
        }
        if ($lang == 'en'){
            $_SESSION['slang'] = 'en' ;
            include_once('./includes/english.php');
        }else {
            $_SESSION['slang'] = 'bg' ;
            include_once('./includes/bulgarian.php');
        }

}

если кто-то может объяснить мне, почему это происходит и как я могу это исправить, было бы здорово Спасибо

Ответы [ 5 ]

4 голосов
/ 23 октября 2009

Убедитесь, что вы звоните session_start на каждой странице. Я попробовал это на своем компьютере и получил ваши результаты без session_start. Когда я его добавил, все заработало как надо.

Вы можете попробовать использовать echo session_id();, чтобы увидеть, запущен ли сеанс на любой странице

2 голосов
/ 23 октября 2009

Судя по тому, что вы написали, код должен работать, вы должны проверить, действительно ли $ _SESSION попадает на страницы.

Используете ли вы: session_start (); ?

1 голос
/ 23 октября 2009

Я бы просто использовал спецификацию Gnu gettext на вашем месте: http://en.wikipedia.org/wiki/Gettext

0 голосов
/ 23 октября 2009

Пожалуйста, позвоните session_start(), чтобы загрузить сеанс.

0 голосов
/ 23 октября 2009

кеш браузера? Можете ли вы очистить всю сохраненную информацию в браузере, а затем попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...