Intereting Posts
Обязательные пользовательские поля проверки WooCommerce не подтверждают введенное значение Разделить временной диапазон на части по другим временным диапазонам Включить mysqli в моей копии веб-сервера php Выход из Laravel не работает при нажатии кнопки возврата Пакет Datatables для Laravel 5 с Parse как источник данных Проверка регистрации и аутентификация с помощью ajax Как правильно создать функцию для форматирования на PHP в расширении Yii2 Highcharts Кнопка php basic pay now для PayPal RHEL + PHP: запись файлов вне / var / www / html? Как получить значение проверенного переключателя и остальных td, но не включать переключатель, который не был проверен (в tr) Laravel отправляет сценарий электронной почты, конфигурации и отправки Унификация, не предоставляющая мне пароль пользователя и имя пользователя REGEX: захватывать все до определенного слова Настройка машины Ubuntu / Apache / PHP для отправки электронной почты Размер изображения в формате php

Является ли порядок INPUTS в POST гарантированным для ввода массива в PHP?

У меня есть форма, в которой пользователи вводят неограниченное количество строк данных. Они приходят к форме, вводя любое количество строк на экране, которые они желают.

<?php $numRows = $_GET['NUM_ROWS_REQUESTED']; ?> <form method="post"> <?php for($i = 0; $i < $numRows ;$i++) { $uuid = uniqid(); ?> <input type="text" name="MYDATA[<?php print $uuid; ?>][FIRST_NAME]" /> <input type="text" name="MYDATA[<?php print $uuid; ?>][LAST_NAME]" /> <?php } ?> </form> 

Мне интересно, если после $_POST['MYDATA'] формы я получаю эти записи в массиве $_POST['MYDATA'] если мне будет гарантировано, что они будут упорядочены в той же последовательности, что и на экране. Или они будут упорядочены с помощью uniqid() который генерируется случайным образом?

Причина, по которой я использую уникальный идентификатор вместо целых чисел, которые будут проще упорядочить, заключается в том, что пользователи могут удалять строки и добавлять дополнительные строки с помощью javascript на этой странице. Было бы слишком сложно проверить наличие столкновений.

Спецификация W3 не включает в себя правила того, в каком порядке значения формы должны быть собраны в набор данных, поэтому технически вы не можете быть уверены. С другой стороны, я не видел случая (из многочисленных браузеров в многочисленных операционных системах на протяжении многих лет), где данные не были отправлены в списке-листинг-порядке. Я действительно не проверял случаи, когда изменял значения tabindex по умолчанию (UI).

Вы всегда можете отсортировать массив ( asort ) после того, как вы его получили, чтобы быть уверенным в том, какой порядок вы читаете.

Это гарантируется HTML4.01 (для -urlencoded, но предполагается, что он идентичен для / form-data), и все текущие браузеры представляют поля формы в том порядке, в котором они указаны в документе.

Так что да, они упорядочены по их внешнему виду, а не случайным uuid.