试试这个HTML。 Mozilla Firefox和IE都很好用!
<html>
<head>
<title>Name Attribute with Spaces</title>
</head>
<body>
<form method="get"> <!-- no "action", form will post to self -->
<table>
<thead><b>Please provide login details</b></thead>
<tbody>
<tr>
<td>Username:</td>
<td><input type="text" name="user name" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass word" /></td>
</tr>
<tr>
<td>List Box:</td>
<td>
<select name="123 list box" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
原因HTML不具有空间的任何问题是URL编码。如果你测试上面的表单,你会发现浏览器会自动编码特殊字符,因此一个空格会被转换为“+”(或者有时候是“%20”)。
test.html?user+name=ravi&pass+word=canuseeme&123+list+box=2
为什么PHP似乎在这里遇到麻烦(从我依稀记得)的原因是,它试图为轻松地将请求参数访问的变量到PHP程序员。任何语言的变量名都不包含空格或以数字开头。
编辑:事实上,如果你让多项选择真正为您的选择框(刚加入多个属性在选择)的名称需要在"[]"
结束给PHP一个暗示,它需要安排一个数组变量!
@Raidenace:不,它不应该。 HTML属性值是以空格分隔的,“列表框”的名称将是*两个*名称(这是无效的)。 – 2013-04-25 22:28:10