>  기사  >  백엔드 개발  >  PHP가 게시 매개변수를 수신할 수 없으면 어떻게 해야 합니까?

PHP가 게시 매개변수를 수신할 수 없으면 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2020-08-24 09:40:384172검색

PHP에서 게시 매개변수를 수신할 수 없는 문제에 대한 해결 방법: 1. 헤더 정보 "content-type"을 확인합니다. 2. [file_get_contents("php://input")] 메서드를 사용하여 입력 스트림을 얻습니다.

PHP가 게시 매개변수를 수신할 수 없으면 어떻게 해야 합니까?

추천: "PHP Video Tutorial"

php 인터페이스 게시 데이터가 매개변수를 받을 수 없습니다. Reason

1 헤더 정보 콘텐츠 유형이 "content-type:application/x- www인지 확인하세요. -form-urlencoded" 이러한 종류의 전송은 양식에 데이터를 제출하는 것이며 PHP는 이를 승인하기 위해 $_POST 메소드를 사용합니다.

2. 헤더 정보의 content-type이 "content-type:application/json"인 경우 전송은 json 모드로 데이터를 제출해야 하며 PHP는 file_get_contents("php://input")를 사용해야 합니다. 입력 스트림을 얻습니다.

3. 저는 PHP를 처음 사용하는데 echo $_POST["variable"] 및 var_dump($_POST)를 사용하여 게시 데이터를 가져올 수 없습니다.

해결책은 다음과 같습니다.

1. php.ini 구성 파일을 찾아, 활성화_포스트_데이터_reading 변수를 찾아 열려 있는지 확인하고 문 앞에 있는 세미콜론을 제거합니다(세미콜론이 있는 문은 주석입니다). 성명):

2 PHP를 실행하는 브라우저의 주소를 관찰하면 PhpStorm에서 브라우저를 여는 데 사용되는 서비스 포트 번호가 63342입니다(URL은 localhost:63342/ 형식입니다)

그래서 원인은 다음과 같습니다. 문제는 PhpStorm이 자동을 사용한다는 것입니다. 내부 서버가 있지만 xampp에서 Apache 서버를 사용하지 않습니다. 내장 서버인 phpStorm은 포트 63342를 사용하는데, 서버 내부에 문제가 있어서 POST 방식이 비정상적으로 되고, 아파치 서버의 작업 디렉터리에 프로젝트를 두고 주소창에 localhost를 입력하면, 이때 Apache 서버를 사용하며, 기본 포트번호는 80 이므로 Apache 서버에서는 정상적으로 프로그램을 실행할 수 있습니다.

PhpStorm 내부 서버에 문제가 있어서 내부 서버를 사용하지 않는 방법을 찾는 것이 해결책입니다. 두 가지 방법이 있습니다.

1. Apache 서버의 작업 디렉터리에 프로젝트를 생성하고 실행될 때마다 브라우저 주소 표시줄에 localhost 주소를 직접 입력합니다.

2. 여전히 프로그램을 열어서 디버깅하려는 경우. 이는 구성을 변경하여 수행할 수 있습니다.

(1) 먼저 Apache 서버 디렉터리를 로컬 디렉터리에 매핑합니다.

방법은 다음과 같습니다.

1. httpd.conf 파일

2. 코드 블록

3을 찾으세요. 의 하위 레벨에 다음 코드를 추가하세요:

# /phpworkspace/ 다른 디스크의 디렉터리는 매핑하려는 디렉터리의 별칭입니다

# "E:/phpworkspace/": 디렉터리의 절대 경로입니다

Alias ​​​​/phpworkspace/ "E:/phpworkspace/"

# 이제 //localhost/phpworkspace/

4를 통해 E 드라이브 아래의 phpworkspace 폴더에 액세스할 수 있습니다.

다음과 같이 과 동일한 수준에 코드 조각을 추가합니다. Apache를 다시 시작하고 http://localhost/phpworkspace/를 방문합니다.

(2) 그런 다음 PhpStorm에서 파일->설정->빌드, 실행, 배포->배포를 찾습니다. 처음에는 비어 있는 녹색 더하기를 클릭합니다. 서명하여 로컬 서버를 추가하고 이름을 localhost로 지정합니다. 위치:

생성이 완료되면 오른쪽 연결 탭의 기본 설정에서 서버가 포트 80, 즉 http에서 Apache 서버로 구성되었습니다. ://localhost

로컬 프로젝트에 매핑한 것으로 변경하세요. 디렉터리:

Mappings 태그 아래의 로컬 경로는 로컬 프로젝트의 디렉터리로 설정됩니다:

이때, PhpStorm에서 브라우저를 클릭하고, 접속한 URL은 더 이상 63342 포트 필드를 갖지 않고 로컬 아파치 서버를 사용하므로 Form 데이터도 정상적으로 수신할 수 있습니다

위 내용은 PHP가 게시 매개변수를 수신할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.