Я хочу изменить язык веб-страницы с помощью этого:
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-адрес моего веб-сайта:
$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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Отправьте данные Get с помощью , когда на странице уже есть другие данные GET [дубликат]
Anonymous » » в форуме Php - 0 Ответы
- 42 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Отправьте данные Get с помощью , когда на странице уже есть другие данные GET [дубликат]
Anonymous » » в форуме Php - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-