PHP는 왜 get 값만 허용하고 POST 값은 허용하지 않습니까?

小云云
풀어 주다: 2023-03-21 13:46:01
원래의
3206명이 탐색했습니다.

php는 일반적으로 get 또는 post 값을 사용합니다. 이 기사에서는 주로 PHP가 get 값만 허용하고 POST 값을 허용할 수 없는 이유를 공유합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

1. PHP가 POST 데이터를 얻는 여러 가지 방법

방법 1. 가장 일반적인 방법은 다음과 같습니다: $_POST['fieldname'];

설명: Content-Type: application/만 수신할 수 있습니다. x-www-form-urlencoded
에서 제출한 데이터설명: POST

방법 2, file_get_contents("php://input");

설명:
POST 읽기 허용 원시 데이터.

(인터페이스 테스트 도구를 사용할 때 헤더가 content-type: application/json으로 설정된 경우에만 이 방법을 사용할 수 있습니다.)
$HTTP_RAW_POST_DATA에 비해 메모리에 대한 부담이 적고 No. 특별한 php.ini 설정이 필요합니다.
php://input은 enctype="multipart/form-data"와 함께 사용할 수 없습니다.
설명:
Content-Type이 지정되지 않은 POST 데이터의 경우 file_get_contents("php://input")를 사용하여 원본 데이터를 얻을 수 있습니다.
실제로 이 방법은 PHP를 사용하여 모든 POST 데이터를 수신하는 데 사용할 수 있습니다. 콘텐츠 유형에 관계없이 바이너리 파일 스트림을 포함하는 것도 허용됩니다.
그러므로 방법 2가 가장 안전한 방법입니다

방법 3, $GLOBALS['HTTP_RAW_POST_DATA'];

참고:
항상 원본 POST 데이터가 포함된 $HTTP_RAW_POST_DATA 변수를 생성하세요.
이 변수는 인식할 수 없는 MIME 유형의 데이터가 발견될 때만 생성됩니다.
$HTTP_RAW_POST_DATA는 enctype="multipart/form-data" 양식 데이터에 사용할 수 없습니다.
게시된 데이터가 PHP에서 인식되지 않으면 $GLOBALS['HTTP_RAW_POST_DATA']를 사용하여
text/xml 또는
설명:
$GLOBALS['HTTP_RAW_POST_DATA']는 POST의 원본 데이터를 저장합니다.
$_POST 또는 $_REQUEST는 PHP에서 형식화된 데이터를 키=>값 형식으로 저장합니다.
그러나 POST 데이터가 $GLOBALS['HTTP_RAW_POST_DATA']에 저장되는지 여부는 centent-Type 설정에 따라 다릅니다. 즉, 데이터를 POST할 때 Content-Type을 명시적으로 지정해야 합니다: application/x-www-form-urlencoded, POST 데이터는 $GLOBALS['HTTP_RAW_POST_DATA']에 저장됩니다.

관련 권장 사항:

get과 post의 차이점에 대해 자세히 설명

위 내용은 PHP는 왜 get 값만 허용하고 POST 값은 허용하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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