2011-08-30 5 views
-3

다음 코드는 ob_start() 및 ob_flush()를 삽입 한 후에도 작동하지 않습니다.PHP 헤더가 이미 전송되었습니다.

은 이미 오류를

<?php 
ob_start(); 
include("/home/www/pheincl/config.php"); 
include("/home/www/pheincl/common_functions.php"); 
$num = $_SERVER['HTTP_X_UP_CALLING_LINE_ID']; 

if($num == null) 
{ 
    $num = $_SERVER['HTTP_X_MSISDN']; 

    if($num == null) 
    { 
    $num = $_GET["msisdn"]; 

    } 
} 

if(strlen($num) > 3) 
{ 
    $sql="select count(*) from members where msisdn='$num'"; 
    $r=fetch($sql); 

    if($r[0] > 0) 
    { 
    $r1=fetch("select pin from members where msisdn='$num'"); 

    if(strlen($r1[pin]) > 2) 
    { 
     header("Location:http://location1.com?msisdn=$num&pin=$r1[pin]"); 
    } 
    } 
    else 
    { 
    header("Location:http://location2.com&msisdn=$num"); 
    } 
} 
else 
{ 
    header("Location:location3.com/phe/log.php"); 
} 

ob_end_flush(); 
?> 

UPDATE를 보낸 PHP 헤더를 점점 계속 : 몇 가지 더 테스트가이 문제처럼 보인다 후 내 SERVIER에 따라 다릅니다. 내가 아는 사람이 서버에 넣었는데 제대로 작동했습니다.

+0

포함 된 파일에 아무 것도 표시되지 않습니까? –

+1

@Lee 인클루드가 데이터를 반향 할 수 있기 전에 출력 버퍼링이 시작되므로 중요하지 않습니다. –

+1

마지막 else 섹션에서 location3.com 앞에 "http : //"를 입력하십시오. – ghostJago

답변

0

header 코드가 실행되기 전에 뭔가가 브라우저로 출력됩니다. 화면에 출력되는 오류 또는 인쇄 또는 echo 문을 찾으십시오.

+0

감사합니다. 포함 파일 중 하나에 문제가있었습니다 –

1

헤더 기능을 사용하기 전에 스크립트는 아무 것도 인쇄하지 않아야합니다. 그건 아무 에코, PHP 태그 외부 HTML 코드가 없다는 것을 의미합니다.

따라서 sql이 일부 오류를 반복하거나 include 파일이 유사한 작업을 수행합니다. 당신이

4

사용 메모장 ++ 및 UTF8로 설정 인코딩은

편집의 원인이 무엇을 아마 문제를 피하려면 마지막?>을 삭제하십시오. 때때로 이것은 문제를 해결합니다.

+0

모든 파일에서 동일한 –

+0

을 시도 했습니까? 포함 된 파일을 의미합니다. – galchen

-1

당신은 시도 할 수있는 파일 모두에 그것을 포함 할 수 있는지 확인하십시오 : BOM 당신의 BOM (바이트 순서 표시)이없는

관련 문제