Переменные GET не передаются при смешивании с URL-адресом

StackOverflow https://stackoverflow.com/questions/1210817

  •  06-07-2019
  •  | 
  •  

Вопрос

Почему, когда я передаю параметры через закодированный URL-адрес и метод GET в форме HTML, закодированные параметры URL-адреса удаляются?

напримерНастраивать:

<form action="process.php?hello=world" method="GET">
<input type="text" name="foo" value="bar">
<input type="submit">
</form>

Результат:переменная hello не будет признан в process.php.

Это плохая практика?

Так это обрабатывает PHP или это связано с тем, как браузер отправляет запрос?Есть ли такая же проблема на других языках?

Это было полезно?

Решение

Да, это плохая практика, потому что она просто не работает.

Если вы хотите передать «ввод скрытой формы», вы должны использовать элемент скрытой формы:

<input type="hidden" name="hello" value="world" />

Как утверждает rezzif в своем комментарии, вы можете смешивать GET и POST следующим образом:

<form action="/something?foo=bar" method="POST">
<input type="text" name="baz" />
</form>

Однако, как правило, я избегаю смешивать эти два понятия.Мне кажется странным иметь параметры GET в действии формы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top