Отправьте данные Get с помощью , когда на странице уже есть другие данные GET [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отправьте данные Get с помощью , когда на странице уже есть другие данные GET [дубликат]

Сообщение Anonymous »

Я хочу изменить язык веб-страницы с помощью этого:
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 [дубликат]" class="inputbox autowidth" />
, когда на странице уже есть другие данные GET [дубликат]" />
Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»