GET переменные не передаются при смешивании с URL - PullRequest
1 голос
/ 31 июля 2009

Почему при передаче параметров через закодированный 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 обрабатывает это, или это связано с тем, как браузер отправляет запрос? Есть ли такая же проблема на других языках?

1 Ответ

7 голосов
/ 31 июля 2009

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

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

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

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

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

Как правило, я избегаю смешивать их. Я нахожу странным иметь GET-параметры в моей форме действия.

...