2016-09-18 3 views
0

알아낼 수없는 혼란스러운 경고 메시지가 있습니다. .

<?php require_once "esse.php";?> 
<?php 
    require("common.php"); 
    if(empty($_SESSION['username'])) 
    {  
header("Location: index.php");  
}  
?> 

포함 된 파일 esse.php 코드 먹으 렴의 라인과 충돌에서 가져옵니다 : 나는 문제가 무엇인지 잘 모릅니다 때문에 어떻게 해결하기 위해 나는 코드 줄 내 videoator-a.php에 파일이 :

: esse.php에 선있다

<option><?php if(isset($_GET['lang'])){echo $_GET['lang'];}else{?>Language<?php } ?></option> 

하는 것으로

session_start(); 

(그냥이 도움이 될 수 있습니다 생각) 내가 videator-a.php에 페이지를 열 때 경고가 발생합니다 : 라인 6 일

Warning: Cannot modify header information - headers already sent by (output started at D:\wamp\www\pollo\esse.php:118) in D:\wamp\www\pollo\videator-a.php on line 6 

이 :에

header("Location: index.php"); 

과 esse.php의 118 줄이 있습니다 :

<option><?php if(isset($_GET['lang'])){echo $_GET['lang'];}else{?>Language<?php } ?></option> 

그리고 만약 제가 비디오를 수정하면 .php 파일은 다음과 같습니다 :

<?php 
require("common.php"); 

header("Location: index.php");  

?> 
<?php require_once "esse.php";?> 

경고가 사라집니다. 왜 두 세션 모두 php 파일에 존재하는지 확인하지 못합니까? 여기 뭐가 잘못 됐니? (죄송합니다, 나는 약간의 끓는 주전자입니다)

제 질문은 - 오류가 발생하는 이유입니다. 그것은 - 헤더가 이미 전송 되었기 때문에 - 그러나 나는 esse.php 파일에서 ny 헤더를 보냈습니다. 세션이 존재하고 ID가 같을 때만 점검됩니다. 문제를 해결할 수 있도록 도와주세요. 미리 감사드립니다.

+0

'헤더는 이미 sent' 출력이었다 의미 보내기 (예 : 에코). 따라서 머리글 (기본값)이 설정됩니다. 'header ("Location : index.php");는 echo 나 다른 것으로 출력이 나오지 않을 때만 작동하기 때문에 가능한 해결책은 ob_start() 함수를 사용하는 것입니다. 그리고 리디렉션 후에'exit; '를 수행해야합니다. – JOUM

+0

이 파일을 테스트 해보세요 :' JOUM

+0

도움이되었습니다! 난 그냥 세션 esists 경우 cehking 전에 ob_start() 함수를 추가했습니다. 고맙습니다! – Donatta

답변

0

문제를 ob_start();로 해결합니다.

는 는

Basiclly의 첫번째

if(!ob_get_level()) { 
    ob_start(); 
    register_shutdown_function(function(){ 
     if(ob_get_level()) ob_end_flush(); 
    }); 
} 

에서 각 파일에 위치하지만, 그 주제는 자세한 내용은 여기를 읽어 compelx 조금 더있다가

What's the use of ob_start() in php?

whats the difference between ob_flush and ob_end_flush?

+0

문제를 해결하는 가장 좋은 방법은 다음과 같이 사용하는 것입니다. echo ""; istead. – Donatta

+0

@Donatta 사실 더러운 옵션이 아니라 현대 프로그래밍에서 가장 좋은 방법은 아닙니다. 어쩌면 가장 좋고/가장 간단한 방법을 알 수 있습니다. 그러나 먼저 '해결 방법'을 사용하기 위해 무엇이 상황에 처하게되었는지에 관한 것. 당신은 PHP 프레임 워크에 대해 읽고 이것들과 다른 것들을 어떻게 다루어야하는지 읽어야한다. – JOUM