Я хочу изменить язык веб-страницы с помощью этого:
FR | DE
И с PHP он отлично работает, когда я получаю такой запрос GET:
if($_SERVER['REQUEST_METHOD'] == "GET" && isset($_GET['lang'])){
$_SESSION['language'] = strval($_GET['lang']);
}
Пока ссылка на сайт выглядит так:
localhost:/mywebsite/courses.php?lang=fr
но у меня возникают проблемы, когда на той же странице уже есть другие запросы GET, например
localhost:/mywebsite/courses.php?courseid=54
потому что, когда я меняю язык, он удаляет ключ курса, и ожидаемые значения БД не находятся, а также логически выдает множество ошибок.
Я думал о сохранении значений CourseID в переменных сеанса, чтобы в случае изменения языка я мог создавать условия и действовать соответствующим образом или отправлять запросы на публикацию с помощью форм.
Какой подход будет лучшим. Есть еще идеи?
Я хочу знать, могу ли я добавить и есть ли уже какие-то данные с ?key=value с href
Спасибо
Изменить: здесь есть ссылка, где говорится об этом:
$query = parse_url($url, PHP_URL_QUERY);
// Returns a string if the URL has parameters or NULL if not
if ($query) {
$url .= '&lang=';
} else {
$url .= '?lang=';
}
но на самом деле требовались некоторые изменения, иначе чем больше мы нажимаем на href, тем больше он добавляет &lang=..&lang=.. и т. д. И мне вначале было непонятно, как это работал. Благодаря AbraCadaver и ADyson я понял, что сначала нужно проверить URL-адрес с помощью PHP, а затем нам нужно контролировать, куда будут вести переменные a href="< ? php # Control the output here ? >". Итак, вот мой рабочий код.
В заголовке я получаю URL-адрес моего API:
$url = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$query = parse_url($url, PHP_URL_QUERY);
if (($query != null)) {
if(!str_contains($query, 'lang=')){
$url .= '&lang=';
}else{
$search = array("lang=de", "lang=fr");
$replace = "lang=";
$url = str_replace($search, $replace, $url);
}
} else {
$url .= '?lang=';
}
Затем в HTML-коде у меня есть это:
[url=
Подробнее здесь: https://stackoverflow.com/questions/790 ... et-data-on
Отправьте данные Get с помощью , когда на странице уже есть другие данные GET [дубликат] ⇐ Php
Кемеровские программисты php общаются здесь
1727280085
Anonymous
Я хочу изменить язык веб-страницы с помощью этого:
[url=?lang=fr]FR[/url] | [url=?lang=de]DE[/url]
И с PHP он отлично работает, когда я получаю такой запрос GET:
if($_SERVER['REQUEST_METHOD'] == "GET" && isset($_GET['lang'])){
$_SESSION['language'] = strval($_GET['lang']);
}
Пока ссылка на сайт выглядит так:
localhost:/mywebsite/courses.php?lang=fr
но у меня возникают проблемы, когда на той же странице уже есть другие запросы GET, например
localhost:/mywebsite/courses.php?courseid=54
потому что, когда я меняю язык, он удаляет ключ курса, и ожидаемые значения БД не находятся, а также логически выдает множество ошибок.
Я думал о сохранении значений CourseID в переменных сеанса, чтобы в случае изменения языка я мог создавать условия и действовать соответствующим образом или отправлять запросы на публикацию с помощью форм.
Какой подход будет лучшим. Есть еще идеи?
Я хочу знать, могу ли я добавить и есть ли уже какие-то данные с ?key=value с href
Спасибо
Изменить: здесь есть ссылка, где говорится об этом:
$query = parse_url($url, PHP_URL_QUERY);
// Returns a string if the URL has parameters or NULL if not
if ($query) {
$url .= '&lang=';
} else {
$url .= '?lang=';
}
но на самом деле требовались некоторые изменения, иначе чем больше мы нажимаем на href, тем больше он добавляет &lang=..&lang=.. и т. д. И мне вначале было непонятно, как это работал. Благодаря AbraCadaver и ADyson я понял, что сначала нужно проверить URL-адрес с помощью PHP, а затем нам нужно контролировать, куда будут вести переменные a href="< ? php # Control the output here ? >". Итак, вот мой рабочий код.
В заголовке я получаю URL-адрес моего API:
$url = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$query = parse_url($url, PHP_URL_QUERY);
if (($query != null)) {
if(!str_contains($query, 'lang=')){
$url .= '&lang=';
}else{
$search = array("lang=de", "lang=fr");
$replace = "lang=";
$url = str_replace($search, $replace, $url);
}
} else {
$url .= '?lang=';
}
Затем в HTML-коде у меня есть это:
[url=
Подробнее здесь: [url]https://stackoverflow.com/questions/79022955/send-get-data-with-a-href-key-value-when-there-is-already-other-get-data-on[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия