> 백엔드 개발 > PHP 튜토리얼 > `enctype='text/plain'`이 HTML 양식의 POST 메소드와 호환되지 않는 이유는 무엇입니까?

`enctype='text/plain'`이 HTML 양식의 POST 메소드와 호환되지 않는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-16 04:37:11
원래의
884명이 탐색했습니다.

Why is `enctype=

"method="post" enctype="text/plain""이 왜 호환되지 않나요?

HTML 양식 인코딩 방법을 사용할 경우 "enctype="text/plain""이 포함된 "post", 양식 데이터가 PHP 스크립트로 전달되지 않습니다. 이 문제의 원인은 무엇입니까? get에는 허용되지만 text/plain 인코딩이 post와 호환되지 않는 이유는 무엇입니까?

설명

PHP는 "enctype="text/plain""을 지원하지 않습니다. method="post"; 프로그램 버그가 아닙니다.

양식에서 "enctype"에 대한 승인된 값 위치:

  • application/x-www-form-urlencoded
  • multipart/form-data

첫 번째 옵션이 기본값이고 두 번째 옵션이 기본값입니다. 파일 업로드에 필수적입니다.

PHP는 다음과 같은 경우 $_POST 배열을 채우지 않습니다. 대신 "enctype="text/plain""이 사용되며, 값은 $HTTP_RAW_POST_DATA에 저장됩니다.

텍스트/일반 인코딩의 잠재적인 문제

다음 시나리오:

file1.php:

<form method="post" enctype="text/plain" action="file2.php">
  <textarea name="input1">abc
input2=def</textarea>
  <input name="input2" value="ghi" />
  <input type="submit">
</form>
로그인 후 복사

file2.php:

<?php
print($HTTP_RAW_POST_DATA);
?>
로그인 후 복사

예상 결과:

input1=abc
input2=def
input2=ghi
로그인 후 복사

그러나 텍스트/일반 인코딩을 사용하면 다음이 있습니다. input1과 input2의 값을 구별할 방법이 없습니다. be:

  • input1=abcrninput2=def, input2=ghi
  • input1=abc, input2=defrninput2=ghi

GET과 POST의 차이점

  • GET 변수가 URL은 쿼리 문자열로 사용되며 enctype="text/plain"을 사용해도 URL로 인코딩되어야 합니다.
  • POST 변수는 HTTP 요청의 최종 헤더(POSTDATA)로 전송되므로 text/plain 또는 text/plain으로 인코딩할 수 있습니다. 애플리케이션/x-www-form-urlencoded. 그러나 모호함을 피하기 위해 후자를 선호합니다.

위 내용은 `enctype='text/plain'`이 HTML 양식의 POST 메소드와 호환되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿