与URL混合时未传递GET变量

Yur*_*uri 1 html php forms

为什么当我通过HTML格式的编码URL和GET方法传递参数时,URL编码参数会被删除?

例如设置:

<form action="process.php?hello=world" method="GET">
<input type="text" name="foo" value="bar">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

结果:hello将无法识别变量process.php.

这是不好的做法吗?

这是PHP处理它的方式,还是与浏览器发送请求的方式有关?其他语言有同样的问题吗?

hob*_*ave 7

是的,这是不好的做法,因为它不起作用.

如果要传入"隐藏的表单输入",则必须使用隐藏的表单元素:

<input type="hidden" name="hello" value="world" />
Run Code Online (Sandbox Code Playgroud)

正如rezzif在评论中指出的那样,你可以像这样混合GET和POST:

<form action="/something?foo=bar" method="POST">
<input type="text" name="baz" />
</form>
Run Code Online (Sandbox Code Playgroud)

作为一般规则,我避免混合两者.我发现在我的表单行动中使用GET参数很奇怪.

  • 但是你可以混合使用和发布. (3认同)