Zastanawiam się, czy istnieje jakakolwiek gwarancja na zamówienie zmiennych POST, które zobaczę po stronie serwera.Jaka jest oczekiwana kolejność tablicy przesłanej w formularzu HTML?
Mój przypadek użycia to formularz, który użytkownik wypełnia, aby wprowadzić listę nazwisk i e-maili. Używam wiersze tabeli, z których każdy posiada dwa wejścia:
<table>
<tr>
<td><input type='text' name='name[]' /></td>
<td><input type='text' name='email[]' /></td>
</tr>
<tr>
<td><input type='text' name='name[]' /></td>
<td><input type='text' name='email[]' /></td>
</tr>
</table>
Wiersz może być klonowane za pośrednictwem javascript, aby umożliwić użytkownikowi wpisywać kolejne nazwiska i e-maile, więc nie będę wiedzieć z wyprzedzeniem how wiele zostanie złożonych.
Po stronie serwera widzę $ _POST ['email'] i $ _POST ['name'] ustawione, ale zastanawiam się, czy mogę bezpiecznie założyć $ _POST ['email'] [0] będzie odpowiadać $ _POST ['name'] [0], $ _POST ['email'] [1] będzie odpowiadać $ _POST ['name'] [1], i tak dalej. Niektóre podstawowe testy wydają się wskazywać tak, ale zastanawiam się, czy istnieje gwarancja, czy też mam szczęście.
Mówi, kto? Muszę być absolutnie pewien, czy użyję go w produkcji. –
dlaczego nie wystarczy przetestować prosty formularz i wynik var_dump. Zobaczysz wynik. wynik będzie zawsze taki sam jak w formularzu HTML (oczywiście możesz zmienić pozycję widoczności elementów, które nie mają efektów) –
Mówi specyfikacja HTML: "Nazwy/wartości kontrolne są wymienione w kolejności, w jakiej pojawiają się w dokumencie . " http://www.w3.org/TR/html401/interact/forms.html#form-content-type – webbiedave