2010-08-19 16 views
6

php.net 사이트를 살펴보면 헤더 오류가 발생합니다. 복사하여 WAMP에서 실행했지만 오류는 표시하지 않았지만 사이트로 리디렉션했습니다. 헤더는 PHP에서 어떻게 작동합니까?

<html> 
<?php 
/* This should give an error (but it doesn't!). Note the output 
* above, which is before the header() call */ 
header('Location: http://www.example.com/'); 
?> 

그냥 내 WAMP, 또는 오류에 해당하는 경우 권리 동작을 알고 싶어, 아니면이 일을하고 php.ini의 파일에 적극적으로 특정 설정이있는 경우!. 만약 누군가 내 php.ini 파일을 여기에 복사 할 필요가 있다면 알려주세요 !! 당신이 사용할 수 output_buffering을 한 것처럼

감사합니다, Tanmay

답변

4

는 소리가 난다.

http://php.net/manual/en/outcontrol.configuration.php

표준 구성은 데이터가 이미되어 출력을 가지고 있기 때문에 에러가 될 것이며, 헤더가 먼저 와야 할 필요가있다. 출력 버퍼링을 사용하면 헤더가 다른 출력 후에 코드에 나타날 수 있지만 버퍼로 인해 헤더가 먼저 출력됩니다.

+0

출력 버퍼링이있는 php.ini 파일을 검사했습니다. 호기심 부분에서 3 개의 다른 머리글 ('Location : ....')을 사용하면 처음 두 개를 실행하지 않고 3 번째 사이트로 리디렉션됩니다. – jtanmay

+0

답장을 보내 주셔서 감사합니다. – jtanmay

+0

@jtanmay : 재미있는 질문인데도 일어날 일이 아닙니다 ... 한 위치로만 리디렉션 될 수 있으므로 '좋은 코드'는 하나의 위치 헤더. – Fosco

0

헤더는 브라우저에 텍스트가 전송되는 즉시 전송되며 한 번만 보낼 수 있습니다. 일단 헤더가 전송되면 헤더가 함께 전송되므로 헤더 함수를 사용하면 헤더가 이미 전송 된 오류가 발생합니다.

+0

OP는 왜 그들이 예상했던 것처럼 오류를 던지지 않았는지 묻습니다. –