Форум → Программирование → PHP для идиотов → Language changer с помошью сессий
Language changer с помошью сессий
Страницы: ← Следующая страница →
-
А хочу написать сктипт который меняет язык страницы.
У меня на каждой странице есть блок с флагами. Каждый флаг это линк такова типа: page.php?lang=ru
Также к каждой странице приклеплен с помошью include фаил который меняет язык с таким содержанием:
session_start();
$ln = $_GET['lang'];
if (!isset($lang) && !isset($_SESSION['lang']) && !isset($ln))
{
echo $lang."no session no GET";
session_register("lang");
$lang = "ru";
}
else if (!isset($lang) && isset($ln))
{
echo $lang."no session is GET";
session_register("lang");
$lang = strtolower($ln);
}
else if (isset($lang) && isset($ln))
{
session_unregister(lang);
echo $lang."both";
session_register("lang");
$lang = strtolower($ln);
}
Проблема в том что когда я жму на флаг то язык меняется, но когда перехожу на другую страницу язык опять стоновится русским(default).
Помогите разобраться. -
Март 4, 2008, 5:41 п.п., спустя 5 минут 41 секунду
1. session_register и session_unregister - в сад. Переписываем все без них.
2. Язык вообще не храним в сессии, а передаем всегда в урле
3. $ln = $_GET['lang']; - уже потенциальная ошибка. Вдруг lang не пришел. -
Март 4, 2008, 5:54 п.п., спустя 13 минут 49 секунд
2. Язык вообще не храним в сессии, а передаем всегда в урле
Почему? Всегда передавал в сессии, и не было никаких проблем. -
Март 4, 2008, 6:05 п.п., спустя 10 минут 39 секунд
идея была использывать ГЕТ только когда менается язык. Если он пуст, то язык не меняется. Если в нем что-то есть, язык меняется. -
Март 4, 2008, 6:16 п.п., спустя 11 минут 12 секунд
Как ты кинешь своему американскому другу ссылку на страницу, где размещена новость на его родном языке? ))) -
Март 4, 2008, 6:23 п.п., спустя 6 минут 16 секунд
Очень просто: http://www.site.ru/index.php?lang=en
Просто если я сейчас буду ставить на все ссылки ?lang= , мне придется всю ночь это делать, их очень много -
Март 4, 2008, 6:25 п.п., спустя 2 минуты 56 секунд
Я же сказал "на страницу, где размещена новость", а не на главную
Очень просто: http://www.site.ru/index.php?lang=en -
-
Март 4, 2008, 6:47 п.п., спустя 3 минуты 59 секунд
Т.е. предлагается после копирования ссылки из адресной строки доправить ее руками? Офигительно удобно …
А поисковики об этом как догадаются? -
Март 5, 2008, 9:32 д.п., спустя 14 часов 44 минуты 32 секунды
Т.е. предлагается после копирования ссылки из адресной строки доправить ее руками? Офигительно удобно …
А поисковики об этом как догадаются?
зачем поправлять? какая проблема иметь такую строку в адресной книге?
достаточно к каждому хрефу дописать &lang=<?php echo $lang; ?> -
Март 5, 2008, 10:05 д.п., спустя 33 минуты 16 секунд
достаточно к каждому хрефу дописать &lang=<?php echo $lang; ?>
звучит легко и не принужденно, но это же гемор…все умрут, а я изумруд -
Март 5, 2008, 11:02 д.п., спустя 57 минут 7 секунд
зачем поправлять? какая проблема иметь такую строку в адресной книге?
Не понял. Вcе страницы сайта всегда иметь в адресной книге?достаточно к каждому хрефу дописать &lang=<?php echo $lang; ?>
Ну е-мое, а я с чего начал. Только зачем тогда сессия? -
Март 5, 2008, 2:27 п.п., спустя 3 часа 25 минут 14 секунд
сесия не нужна, но у die2live насколько я понял проблема в том что он хотел все это организовать сесией и вообщем ты сказал ему правильно - ession_register и session_unregister - в сад. Переписываем все без них. -
Март 10, 2008, 3:50 п.п., спустя 5 дней 1 час 23 минуты
внял вашим разумным советам и переделал свой Language changer, но встретил такую проблему - какие хрефы давать флагам?
попробовал так<a href="<?php echo $_SERVER['REQUEST_URI']; ?>&lang=en">
<img src="files/en.gif" width="20" height="10" hspace="2" border="0" align="absmiddle" /></a>
но в большинстве случаев REQUEST_URI уже содержит переменную lang и получается что в урле 2 раза одна и тажа переменная с разными данными. технически проблем не каких, но хотелось бы сделать более грамотно. какой способ подскажете? -
Март 10, 2008, 4:04 п.п., спустя 13 минут 21 секунду
напиши функцию, которая смотрит есть ли лэнг в урле или нету..все умрут, а я изумруд
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!