2017-12-28 14 views
0

비슷한 질문을했지만 문제를 해결하지 못했습니다.헤더가 이미 curl_exec()에 의해 보내 졌기 때문에 세션을 시작하지 못했습니다.

Failed to start the session because headers have already been sent by 
".../cUrlWrapper.php" at line 60. 

대응하는 PHP 코드는 다음과 같습니다 :

나는 컬 GET을 수행

, 나는 오류 메시지가 무엇입니까

$this->curl = curl_init($url); 
curl_exec($this->curl); // Line 60 

사람이 무슨 일이 일어나고 있는지 알고 있나요 내가이 문제를 해결 수있는 방법 ? 승인 된 솔루션은 내 문제 (해결)를 해결하지만

솔루션 업데이트

, 나는 또한 더 나은 첫번째 장소에있는 서비스 (내 문제의 근본 원인)에 불필요한 ContainerAwareTrait을 제거했습니다.

+0

session_start()는 파일의 시작이어야 함 –

답변

2

"반송 전송"옵션을 설정하지 않으면 curl_exec()이고, 출력은이고 URL 요청의 결과입니다. 일단 출력이 발생하면 세션 시작과 같이 새로운 헤더를 설정할 수 없습니다.

당신도 당신이 cUrlWrapper.php 파일을 포함 전에 session_start()를 호출 할 수 있습니다 (또는 curl_exec()가있는 것을 어떤 함수를 호출), 또는 사용자가 URL 요청의 결과를 잡을 수 나중에 그것을 출력 :

$this->curl = curl_init($url); 
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($this->curl); 
// perhaps "return $result;" if this is in a function 

// ... 
session_start(); 
// ... 

echo $result; 
+0

의미가 있습니다. 세션을 시작하기 전에는 아무 것도 출력 할 수 없습니다. – jeprubio

+0

내 옵션을 설정하고 curl_exec() 전에 session_sart()를 설정했는데 예외가 사라졌습니다. 감사 ! – JVerstry

관련 문제