如您所知,如果您有一个包含
<select name="user">
<option value="a">a</option>
<option value="b">b</option>
</select>
<input type="text" name="user[name]" />
<input type="password" name="user[password]" />
然后您用 PHP 提交该表单,$_REQUEST['user']
将自动成为包含键 name
的数组和 password
, select 的值将消失。如果 <select>
则相反在其他两个字段之后移动。 $_REQUEST['user']
将包含选择的值,并且输入中的值将消失,没有任何设置为 $_REQUEST['user[name]']
或 $_REQUEST['user[password]']
.
据我所知,这同样适用于 $_POST
, $_GET
和 $_FILES
.
此外,当表单的 MIME 为 multipart/form-data
时,输入流不可用.
那么,有没有什么办法可以禁用这种自动解析呢?
最佳答案
一个。改变
<select name="user">
到
<select name="user[user]">
这样您就可以为用户数组设置一个键。如果您要使用 post 数组,则必须确保每个数组都有一个键。
B. (我会这样做的)
忘掉数组吧。为每一个使用唯一的名称。使用数组不会给您带来任何好处。调用第一个user,第二个user_name,第三个“password”
关于php - 禁用 "square bracket to array"表单值名称的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348157/