@mozzart_live

Можно ли указывать не уникальные ключи в HTTP Query String?

Доброго дня!

Копался в RFC и не смог найти четкого ответа на свой вопрос.
Насколько правильно, с точки зрения стандарта, иметь вот такой get-запрос: site.ru/?foo=bar&foo=bar2?

Вот php (возможно на уровне апача) в упор, видит это как один ключ (первый).

Но дока одно из restapi, утверждает, что это более реальный кейс.
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Обычно PHP в таком случае видит последнее значение. Используйте site.ru/?foo[]=bar&foo[]=bar2. Тогда в PHP будет массив $_GET['foo'] = ['bar', 'bar2'].
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Учитывая, что тот же РНР прекрасно обрабатывает запросы вида ?foo[]=bar&foo[]=bar2, то уникальность явно не является обязательной.
А то что он видит как один (только не первый, а последний), то это как раз совершенно очевидно и банально.
Если вы в коде напишете
$array['foo'] = 'bar';
$array['foo'] = 'bar2';
То разумеется в $array останется только второй вариант, который тупо перезатрет первый. И Оппач тут совершенно не при чем.

Но вам никто не мешает написать свой парсер QUERY_STRING и брать из него неуникальные значения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы