Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переключения языков 
V
    Опции темы
fakeman
  Дата 31.8.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Есть меню с языками
Код

<a href='".$_SERVER['PHP_SELF']."?lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?lang=en'>EN</a>

Вроде всё работает но если заходиш на РУ по такому адрессу http://localhost/phpsite/news/news_view.ph...=21&lang=ru и на этой страничке хоче переключиться на EN то он просто переходит на http://localhost/phpsite/news/news_view.php?lang=en почему не берёт во внимание этот вот ?id=21 а уже потом ланг ? 
П.С. Меню с языками распростроняеться на все страницы.

Попытался сделать альтернативу она работает но блин УРЛ можно добить и до такого http://localhost/phpsite/index.php?lang=ru...ng=ru.....(Если скакть с языка на язык) Как то не салидно smile

Код

if(empty($_GET['lang']))
{
    echo "<form method='GET'>
        <a href='".$_SERVER['PHP_SELF']."?lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?lang=en'>EN</a>
        </form>";
}
else
{
    echo "<form method='GET'>
        <a href='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&lang=en'>EN</a>
        </form>";
}


Прошу вашей помощи smile
PM MAIL   Вверх
bars80080
Дата 31.8.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



выполните phpinfo(); и посмотрите в каких переменных _SERVER находится необходимый вам хвост с гет-данными

во всяком случае здесь $_SERVER['PHP_SELF']."?lang=en вы явно избавляетесь от прежних данных. этот адрес надо формировать на каждой странице

Добавлено через 39 секунд
Цитата(fakeman @  31.8.2009,  18:44 Найти цитируемый пост)
echo "<form method='GET'>
        <a href='".$_SERVER['PHP_SELF']."?lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?lang=en'>EN</a>
        </form>";
}

а зачем ссылка находится в форме?
PM MAIL WWW   Вверх
fakeman
Дата 31.8.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @  31.8.2009,  19:11 Найти цитируемый пост)
этот адрес надо формировать на каждой странице


А можно по подробнее ? smile
PM MAIL   Вверх
bars80080
Дата 31.8.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



ну раз попали на эту страницу с id=21, то если вы хотите при переходе по ссылке на другой язык остаться на ей же, то надо в этом адресе вновь вставить id=21

вот здесь оно теоретически есть $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'] в $_SERVER['QUERY_STRING']

а здесь нет 
$_SERVER['PHP_SELF']."?lang=en

и опять же, зачем ссылки обёрнуты в форму?
PM MAIL WWW   Вверх
fakeman
Дата 1.9.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @  31.8.2009,  23:48 Найти цитируемый пост)
вот здесь оно теоретически есть $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'] в $_SERVER['QUERY_STRING']


Да есть там id=21 но и там же есть lang= в звависемасти какой язык выбран и получаеться тоже самое.. как можно отсекать эти повторяющие &lang=... ? 

Код

if(($_GET['id']))
{
    echo "
        <a href='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&lang=en'>EN</a>
        ";
}
else
{
    echo "
        <a href='".$_SERVER['PHP_SELF']."?lang=ru'>RU</a> | <a href='".$_SERVER['PHP_SELF']."?lang=en'>EN</a>
        ";
}



Цитата(bars80080 @  31.8.2009,  23:48 Найти цитируемый пост)
и опять же, зачем ссылки обёрнуты в форму? 

Я чего то подумал что она нужна, но уже убрал её..
PM MAIL   Вверх
IZ@TOP
Дата 1.9.2009, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



fakeman, Вы выбрали не самый лучший подход.
1. В PHP_SELF нет и не будет параметра id.
2. Самое лучшее, что Вы можете использовать, это http_build_query или аналогию:

Код

$params = $_GET;
if(array_key_exists('lang', $params)) { 
    unset($params['lang']);
}

$query = http_build_query($params);

// ... Тут много кода и проверка, были ли в query параметры, если нет - добавляем "?"

?> <a href="<?=$query?>&lang=ru"> RU </a> | <a href="<?=$query?>&lang=en"> EN </a>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
fakeman
Дата 2.9.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



М.. всем спасибо, разобрался smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.