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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Убрать GET переменную и цифры 
:(
    Опции темы
supercelt
Дата 26.3.2010, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Общий смысл вот в чём:
Пользователь гуляет по сайту и вдруг ему захотелось переключиться на англ язык. После переключения он должен автоматически попасть на ту страницу на которой был. Для этого использую

Код

$_SERVER['HTTP_REFERER']


Проблема в том, что если жать на переключения языка несколько раз подряд или через раз, то получается примерно вот это:

Код

$_SERVER['HTTP_REFERER'] = 'http://www.site.com/?ln=1?ln=1?ln=1...'


Кол-во ln зависит от кол-ва нажатий на флажок языка. Как убрать это из строки? А именно нужно убрать '?ln=любое число'
Или эта штука как-то по другому вообще делается?
PM   Вверх
bars80080
Дата 26.3.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



1. что есть флажок? ссылка? javascript-ное что-то? как он выглядит?

2. как происходит присваивание гет-переменной языка? судя по всему тупо добавляется ?ln=... . тогда надо исправить, чтобы проверяло, есть ли уже ln, и если есть, то не добавлять, а исправлять значение
PM MAIL WWW   Вверх
supercelt
Дата 26.3.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



bars80080, Флажок это:

Код

function get_lang_box() {
    global $mysql;
    $result = '';
    (isset($_SERVER['HTTP_REFERER'])) ? $refer = $_SERVER['HTTP_REFERER'] : $refer = $_SERVER['SCRIPT_NAME']; 
    $language_q = $mysql->select_db('*', '`blaza_languages`', false);
        while($data = $mysql->fetch_array_db($language_q))
        {
        $result .= '<a href="'.$refer.'?ln='.$data['id_lang'].'"><img class="lang_flag" src="/system/images/'.$data['flag_image'].'" /></a>';
        }
    return $result;
    }


Проверить-то я знаю как если там лн или нет. А вот как заменить конструкцию ln=число на пустое место, не знаю
PM   Вверх
bars80080
Дата 26.3.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



ну вот, перед циклом while разбираемся с рефером

хотя бы можно найти strpos('ln=', $refer) /или strstr/, и если нашёл, то по найденной позиции вырезать кусок ln=1, а в цикле уже добавлять не ?ln=, а &ln=
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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