PHP에서 동일한 이름 속성을 가진 양식 필드 처리
PHP에서 동일한 이름 속성을 공유하는 여러 입력 필드가 있는 양식을 제출할 때, 이상한 행동이 일어납니다. 해당 이름을 가진 마지막 필드의 값만 $_POST 배열에서 사용할 수 있습니다. 이는 동일한 이름을 가진 모든 필드의 값을 검색하려고 시도할 때 심각한 방해가 될 수 있습니다.
동작 이면의 추론
PHP는 원시 쿼리 문자열을 구문 분석하여 채웁니다. $_POST 배열, 동일한 이름의 기존 값을 덮어씁니다. 따라서 동일한 이름을 가진 여러 필드가 발견되면 마지막 필드만 기록됩니다.
배열 구조 필드 이름
이 문제를 해결하려면 권장됩니다. 각 입력 필드에 배열 구조의 이름을 할당합니다. 예를 들어 "foo" 및 "bar"라는 이름을 지정하는 대신 "foo[]" 및 "bar[]"를 사용할 수 있습니다. 이렇게 변경하면 $_POST에 키가 일반 이름이고 값이 배열에 저장되는 배열이 생성됩니다.
배열 구조 필드 이름을 사용하는 예제 코드
<form method="post"> <input name="a[]" value="foo"/> <input name="a[]" value="bar"/> <input name="a[]" value="baz"/> <input type="submit" /> </form>
이 예에서 $_POST['a']는 ["foo", "bar", "baz"].
원시 쿼리 문자열 액세스
또는 원시 쿼리 문자열에 액세스해야 하는 경우 file_get_contents('php:/ /입력') 기능. 이렇게 하면 전체 문자열이 제공되며 이를 직접 구문 분석할 수 있습니다.
원시 쿼리 문자열 구문 분석을 위한 예제 코드
$post = array(); foreach (explode('&', file_get_contents('php://input')) as $keyValuePair) { list($key, $value) = explode('=', $keyValuePair); $post[$key][] = $value; }
이 코드는 배열을 생성합니다. 각 이름을 값 배열에 매핑하여 이름 속성이 동일한 여러 필드의 문제를 해결합니다.
위 내용은 PHP에서 동일한 이름을 가진 여러 양식 필드를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!