2012-08-08 4 views
-2
작동하지

가능한 중복 :
Headers already sent by PHPPHP 헤더

"헤더 정보를 수정할 수 없습니다 - 이미 전송 헤더"

를 OS X 마운틴 라이온에 나의 맥북 프로 업데이트 이후, 내 localhost 웹 사이트가 오작동하고 있습니다.

header("Location: ./xxx.php"); 리디렉션 중 대부분 (전부는 아니지만)이 작동하지 않았습니다. 그들은 라이온에서 근무 했으므로 Mountain Lion이 나의 코드가 아니라 이것을위한 원인이라고 가정합니다. 또한 내장 서버를 끄고 MAMP를 활성화/사용하면 오류가 발생합니다.

이것은 마운틴 라이온 전체가 헤더를 어떻게 다루는 지에 대한 문제인 것으로 생각됩니다. 이 오류가 실제로 제 코드라면 라이온에서 왜 작동 했습니까? 필자는 Mountain Lion이 더 엄격한 방식으로 PHP 코드를 읽는다고 가정 할 것입니다. 또한 헤더를 리다이렉트하는 간단한 test.php 스크립트를 만들어 헤더가 일반적으로 작동하지 않는지 확인했다. 그것이 나왔을 때, 그 스크립트는 Safari에서 열 때 아무런 문제없이 나를 리디렉션했습니다. 이 오류는 저에게 이상한 것처럼 보입니다. 나는 약간의 피드백을 원합니다. 감사.

+3

출력을 보내면 헤더를 보낼 수 없습니다. 오류는 모두 –

+0

"실제 출력을 보내기 전에 header()를 호출해야 함을 기억하십시오."http://php.net/manual/en/function.header.php – TheZ

+0

아마도 첫 번째 문자로 공백을 추가했을 것입니다. 우연히 또는 이와 비슷한 PHP 파일이 파손될 수 있습니다. – insertusernamehere

답변

3

Cannot modify header information - headers already sent은 이미 데이터가 전송되었을 때 헤더를 보내려고한다는 것을 의미합니다. 불가능합니다.

응용 프로그램을 디버깅해야 할 경우 header('Location: ...)을 간단히 exit;으로 바꾼 다음 출력이 있는지 확인하십시오. header() 전화 전에 echo, print을 검색하십시오.

+0

OSX ML로 업데이트하기 전에 MAMP에서. 나는 항상 한 번에 하나씩 만 가지고있다. 그리고 아니요, 헤더가 에코/프린트 형태로 리다이렉트되기 전에는 출력이 없습니다. doctype이있는 몇 가지
태그가 있으며 session_start()/sessions 아래의 맨 위 근처에 있지만 스크립트를 중단시킬만큼 충분한 지 여부는 알 수 없습니다. html은 PHP 태그가 아닙니다. – user1585762

+0

원하는 경우이 문제가 발생한 내 스크립트 중 하나 인 로그인 스크립트를 게시 할 수 있습니다. – user1585762

+0

@ user1585762 "몇 개의
태그"는 출력으로 간주됩니다. 브라우저 나 콘솔에서 볼 수있는 것은 출력으로 간주됩니다. – Tchoupi