>  기사  >  백엔드 개발  >  헤더정보 수정이 안되는 문제 해결방법(php)

헤더정보 수정이 안되는 문제 해결방법(php)

WBOY
WBOY원래의
2016-08-08 09:29:201041검색

함수 실행시 사용자가 로그인 후 실행할 페이지로 바로 이동할 수 있도록 먼저 오류 주소를 처리하여 쿠키에 기록해 두었습니다. 그런데 찾아보니 서버에서 테스트할 때 실제로 로컬에서는 발생하지 않은 오류가 발생했습니다. 경고: 헤더 정보를 수정할 수 없습니다. 헤더는 이미 전송되었습니다....
이 명령문은 분명히 setcookie에 의해 발생한 것입니다. 설명: 쿠키 사용에는 다음과 같은 몇 가지 제한 사항이 있습니다.
1. setcookie 호출에 대한 설명은 태그 앞에 배치되어야 합니다.
2. setcookie를 호출하기 전에는 echo를 사용할 수 없습니다. 🎜> 3. 웹페이지까지 쿠키는 다시 로드될 때까지 프로그램에 나타나지 않습니다.
4. 데이터가 브라우저에 출력되기 전에 setcookie 함수를 전송해야 합니다
5. ...
위의 제한 사항을 바탕으로 실행하므로 cookie() 함수를 설정할 때 "정의되지 않은 인덱스", "헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더"... 등과 같은 문제가 자주 발생합니다. 오류 해결 방법" 헤더 정보를 수정할 수 없습니다. "에서 이미 보낸 헤더는 이전에 쿠키를 생성하는 것입니다. 먼저 브라우저에 대한 데이터 출력을 지연하므로 프로그램 앞에 ob_start(); 함수를 추가할 수 있습니다. 이것으로 해결될 것입니다. ob_start()를 추가하려는 경우 프로그램이 작성된 후 이를 변경하는 것은 약간 우울한 것 같습니다. 이 오류가 표시되는 것을 알았을 때 내 로컬 컴퓨터에서 이 메시지가 표시되지 않는 이유가 궁금했습니다. 문제인 줄 알았습니다. PHP.ini 구성이 다르지만 틀린 것 같습니다.
다음 문장을 보면 "output start at...."이라는 뜻이 있습니다. setcookie 이전의 다른 위치에 출력되므로 출력이 시작된 다음 파일을 발견하고 첫 번째 줄이 비어 있는 것을 확인하고 해결됨
해결 방법 2:
이 문제를 온라인으로 해결하는 대부분의 방법은 다음과 같습니다. 같은 질문인데 오늘 또 접하게 됐네요. 시도한 후에 작동한다는 것을 알았습니다.
php.ini 구성 파일을 찾은 다음, output_buffering 항목을 검색하고 해당 값을 off에서 on으로 변경한 다음 Apache를 다시 시작하면 괜찮을 것입니다.

PS: 때로는 SAE에서 PHP 애플리케이션을 생성할 때 Jump 및 setcookie가 지원되지 않으면 이런 일이 발생하기도 합니다. SAE 개발 문서 사양을 따라야 합니다.

위 내용은 헤더정보(php)를 수정할 수 없는 문제에 대한 해결방안을 관련 내용을 포함하여 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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