Всем доброго времени суток. Решил сделать мультиязычный сайт, то есть выбор языка. Но столкнулся с такой проблемой быть может кто поможет решить. Выборка языка делается из ваподающего меню, вроде всё работает, и через сессию передаётся нужное значение но проблема в том что если я из другой страницы возвращаюсь на главную то сессия обнуляется и вместо выбронного языка устанавливается значение по умолчанию как с этим боротся не соображу, быть может кто сталкивался с этой проблемой... вот скрипт в кратце PHP: <?php session_start(); //сессия начата $_SESSION['lang']=$_REQUEST['lang']; //берём значение select из формы if(empty($_SESSION['lang'])) // если сессия пуста то язык по умолчанию русский { $_SESSION['lang']='RU'; echo "Язык по умолчанию Русский"; } else{ //иначе выбираем нужный язык if($_SESSION['lang']=='RU') { echo "Выбран Русский язык"; } elseif($_SESSION['lang']=='DE') { echo "Выбран Немецкий язык"; } elseif($_SESSION['lang']=='EN') { echo "Выбран Английский язык"; } } ?> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> <select name="lang" size="1"> <option value="DE">Немецкий</option> <option value="RU">Русский</option> <option value="EN">Английский</option> </select> <input name="submit" type="submit" value="Выбрать" /> </form> <a href="index2.php">Проверка</a> <!--Проверяем выбранный язык--> </body> </html> а здесь я проверяю работу сессии и здесь же обратная ссылка PHP: <?php session_start(); //продолжаем сессию?> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body><?=$_SESSION['lang']; //отображаем какой язык выбран?> <a href="index.php">На главную</a> </body> </html> Буду весьма признателен за помощь....
что то не совсем понял у меня же уже есть PHP: if(empty($_SESSION['lang'])) // если сессия пуста то язык по умолчанию русский { ??
$_SESSION['lang']=$_REQUEST['lang']; //берём значение select из формы а у тебя при переходе на главную $_REQUEST['lang'] какое значение имеет, если ничего не введено? никакого? значит сессии ты приравниваешь пустое значение? может она становится empty? и приравнивается RU. PHP: <?php switch ($_SESSION['lang']){ case ('RU'): echo "Выбран Русский язык"; break; case ('DE'): echo "Выбран Немецкий язык"; break; case ('EN'): echo "Выбран Английский язык"; break; default: $_SESSION['lang']='RU'; echo "Язык по умолчанию Русский"; } ?> так удобней
а лучше в куках... имхо, мне б запарило после каждого выключения браузера включать себе желаемый язык