>  기사  >  백엔드 개발  >  PHP 헤더 오류 문제를 해결하는 방법

PHP 헤더 오류 문제를 해결하는 방법

藏色散人
藏色散人원래의
2021-10-20 11:12:535056검색

잘못된 PHP 헤더에 대한 해결 방법: 1. 위치와 ":" 기호 사이의 공백을 취소합니다. 2. 헤더를 사용하기 전에 출력이 없어야 합니다. 3. 캐시를 열고 "output_buffering=0"을 설정하도록 수정합니다. 409로.

PHP 헤더 오류 문제를 해결하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 헤더 오류 문제를 해결하는 방법은 무엇입니까?

PHP 헤더 오류 원인 분석 및 해결 방법

헤더("location:test.php")를 사용하여 PHP로 점프할 때 다음 사항에 주의하세요.

1. " 문자 사이에 공백이 없어야 합니다: ", 그렇지 않으면 오류가 발생합니다.

2. 헤더를 사용하기 전에는 포함 페이지의 "?>" 태그 뒤에 공백이 없어야 합니다. !

3. 헤더 뒤의 PHP 코드도 실행됩니다.

계속:

문제: 헤더 함수 앞에 내용을 입력하세요.

일반적으로 헤더 함수 앞에는 html 콘텐츠가 출력되지 않습니다. 마찬가지로 setcookie() 및 세션 함수가 있습니다. 출력 스트림에 메시지 헤더 정보를 추가해야 합니다. header()가 실행되기 전에 echo와 같은 문이 있는 경우 나중에 header()를 만나면 "경고: 헤더 정보를 수정할 수 없습니다. 헤더는 이미 전송되었습니다...."라는 오류가 보고됩니다. 즉, 이들 함수 앞에는 텍스트, 빈 줄, 캐리지 리턴 등이 있어서는 안 되며, header() 함수 뒤에 exit() 함수를 추가하는 것이 가장 좋습니다. 예를 들어 다음과 같은 잘못된 쓰기에서는 두 PHP 코드 조각 사이에 빈 줄이 있습니다.

//이것은 빈 줄이어야 합니다

원인:

PHP 스크립트가 실행되기 시작하면 다음과 같은 오류가 발생할 수 있습니다. http 메시지 헤더(제목) 정보와 본문 정보를 동시에 보냅니다(header() 또는 SetCookie() 함수에서). 대신 목록에 저장됩니다. 기본 헤더(예: Content-Type 헤더)를 포함하여 헤더 정보를 수정합니다. 그러나 스크립트가 헤더가 아닌 출력(예: HTML 또는 print() 호출 사용)을 보내면 PHP는 먼저 모든 헤더와 헤더를 보내야 합니다. 그런 다음 HTTP 헤더를 종료하고 본문 데이터를 계속 보내십시오. 이 시점부터 헤더 정보를 추가하거나 수정하려는 시도는 허용되지 않으며 위의 오류 메시지 중 하나가 전송됩니다.

해결책:

캐싱(output_buffering)을 활성화하도록 php.ini를 수정하고, 출력_버퍼링=0을 출력_버퍼링=4096

으로 변경하거나 프로그램에서 캐시 함수 ob_start(), ob_end_flush() 등을 사용하세요. . 원칙은 다음과 같습니다. output_buffering이 활성화되면 스크립트가 출력을 보낼 때 PHP는 HTTP 헤더를 보내지 않습니다. 대신, 이 출력을 동적으로 증가하는 캐시로 연결합니다(중앙 집중식 출력 메커니즘이 있는 PHP 4.0에서만 사용 가능). 헤더는 실제로 전송되지 않으므로 헤더를 수정/추가하거나 쿠키를 설정할 수 있습니다. 모든 스크립트가 종료되면 PHP는 자동으로 HTTP 헤더를 브라우저에 보낸 다음 출력 버퍼의 내용을 보냅니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP 헤더 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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