У меня странная проблема. Недавно я перенес свое приложение с локальной установки xampp на SUSE Enterprise Server 11, и все работает, но эта вещь сводит меня с ума, и я не могу найти решение.
При передаче массивов через GET или POST с использованием следующего синтаксиса:
search_dggs.php?latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16
Я получаю только первый элемент latmin. Имейте в виду, что это всего лишь простой пример, который я попробовал после того, как ошибка возникла в других местах, где необходима передача массивов.
print_r($_SERVER["QUERY_STRING"]);
выводит
latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16
, а
print_r($_GET);
дает
Array
(
[latmin] => Array
(
[0] => 52.447529
)
[lonmin] => 17.56
[lonmax] => 22.16
)
. Точно так же происходит со всеми запросами POST.
Я использую PHP версии 5.3.8. Я предполагаю, что проблема в некоторой конфигурации сервера, но я ничего не нашел об этой проблеме.
Ответ на комментарии:
То же самое произойдет, если я отправлю любое количество переменных.
parse_str($_SERVER["QUERY_STRING"]);
print_r($latmin);
дает
Array
(
[0] => 52.447529
)
php.ini можно найти здесь
Вы должны увидеть поведение в действии здесь
Исходный файл этого файла php