В моей локальной системе я могу безопасно отправлять значения поля множественного выбора, заканчивая имя выбора парой скобок []. Затем PHP будет обрабатывать отправленные параметры и обрабатывать значения поля выбора как массив в $_REQUEST
(или же $_GET
, или же $_POST
)
Я думал, что поведение было с самого начала, но это не работает таким образом в другой системе (которая, к сожалению, Я не знаю ни одной из его особенностей как версия PHP), и при попытке доступа к нескольким значениям из $_REQUEST
, он не получит массив, а только последнее выбранное значение.
Итак, мой вопрос: кто-нибудь знает, из какой версии PHP выполняется эта «массивизация» множества одинаковых значений имени? Или может я не прав?
Вот тест (который работает в моей локальной системе, но не в другой (предположительно) старой системе):
<?php
echo "Query string: ", $_SERVER['QUERY_STRING'], "<br>";
echo '$_GET: ';
print_r($_GET);
echo "<br><br>";
?>
<form method="get" role="form">
<select name="multi[]" multiple><!--onchange="setmail(this)"-->
<option value="1">value 1</option>
<option value="2">value 2</option>
<option value="3">value 3</option>
<option value="4">value 4</option>
<option value="5">value 5</option>
<option value="6">value 6</option>
<option value="7">value 7</option>
</select>
<br>
<button type="submit">Send</button>
</form>
и результат после проверки двух вариантов и попадания отправить в мой локальный:
Строка запроса: multi% 5B% 5D = 1&мульти% 5B% 5D = 2
$ _GET: Array ([multi] =>
Array ([0] => 1 [1] => 2))
и в другой системе:
Строка запроса: multi% 5B% 5D = 1&мульти% 5B% 5D = 2
$ _GET: Array ([multi% 5B% 5D] => 2)
Задача ещё не решена.
Других решений пока нет …