Пробуйте этот 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 программиста. И имена переменных на любом языке не содержат пробелов или начинаются с цифр.
Edit: В самом деле, если вы сделаете множественного выбор истинного для выбора коробки (просто добавьте множественные атрибута в выбрать) имя должно заканчиваться "[]"
дать PHP намек, что он должен организовать переменную Array!
@Raidenace: нет, не следует. Значения атрибутов HTML - это пробелы с пробелом, имя 'list box' будет * двумя * именами (что является недопустимым). –