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

Поиск:

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


Опытный
**


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

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



На сайте 3 языка...Для смены языков...Когда по страничке не чего не нажималось то всё оки...А вот когда гуляем по иерархии ..например когда уже строка адресса что то вроде 
http://somesite.ru/index.php?lang=EN&t...6&second=43  этого 
То понятно что если среди этого сменить язык ,тоесть нажать нассылку то понятно что всё теряется и получается 
http://somesite.ru/index.php?lang=RU 
Мог бы прописать чтото вроде 
<a href=index.php?lang=EN&theme=$theme&first=$first...и т.д. Но уменя то параметров это больше то меньше.....
Хочу взять имеюшуюся строку адресса и  ссылка чтобы меняла только параметр lang. Могу через isset преписать для каждого положение ..Только это длинно получется...
Надеюсь вапрос понятный...Зарание благодарю.


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
Goganchic
Дата 15.2.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Имя своего скрипта ты знаешь, параметры строки запроса (все что после знака "?") можно получить из переменной QUERY_STRING, таким образом, ты можешь просканить ее на наличие параметра lang и если его нет, то добавить в конец, иначе заменить значение параметра прям в строке запроса, а после этого делаешь ссылку например так:
Код

print '<a href="index.php?'.$QUERY_STRING.'&lang=RU">Russian</a>';

Ну или же изменяешь существующую строку запуска если параметр lang уже определен.
PM Jabber   Вверх
mishaSL
Дата 15.2.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



Goganchic, не забываем про Register Globals (http://ru.php.net/Register_Globals)

Папараццы, можно так:
Код

print str_replace('lang='.$_GET['lang'],'lang=RU',$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']);


Это сообщение отредактировал(а) mishaSL - 15.2.2007, 17:46


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Link90
Дата 16.2.2007, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Битый" пиксель
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 25.11.2005
Где: Иркутск - середин а земли!

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



Попробуй так:
Код

$url=str_replace('lang=EN','lang=RU',$_HTTP_SERVER_VARS['QUERY_STRING']);
echo '<a href=index.php?'.$url.'>';

PM MAIL ICQ   Вверх
boombick
Дата 16.2.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.4.2005
Где: Moscow, Russia

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



mishaSL, а причем там register_globals?
Цитата(Link90 @  16.2.2007,  08:58 Найти цитируемый пост)
$_HTTP_SERVER_VARS

Это устаревшее название, рекомендуется использовать $_SERVER


--------------------
Все вышесказанное - имхо, и на истину в последней инстанции не претендует
------
UNIX and other
PM MAIL WWW ICQ   Вверх
mishaSL
Дата 16.2.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



Цитата(boombick @  16.2.2007,  11:56 Найти цитируемый пост)
mishaSL, а причем там register_globals?


Это к тому что вместо $QUERY_STRING необходимо использовать $_SERVER['QUERY_STRING'].


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Папараццы
Дата 18.2.2007, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



str_replace('lang=EN','lang=RU',$_SERVER['QUERY_STRING']);  
Всё вроде работоет из выше сказанного....Только вот у меня 3 языка...Ну  в строке может быть и EN и AZ.
Что надо зделать чтобы заменял и при EN 

Вот придумал чтото smile 
str_replace('lang='.$lang,'lang=RU',$_SERVER['QUERY_STRING']);
Где $lang у меня уже зарание известная переменная...Всем спасибо огромное...

Это сообщение отредактировал(а) Папараццы - 18.2.2007, 01:54


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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