2010-05-05 4 views
-1

온라인에 발견하고 내 코드에 적용 :의 PHP으로 session_start() 오류

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /data/server/user/directory/sub-directory/login.php:1) in /data/server/user/directory/sub-directory/login.php on line 2 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/server/user/directory/sub-directory/login.php:1) in /data/server/user/directory/sub-directory/login.php on line 2 

I :이 페이지를 열 때, 나는 오류를 가지고

<?php 
session_start(); 
if (isset($_REQUEST["email"])) 
{ 
    $_SESSION["name"] = true; 
    $host = $_SERVER["HTTP_HOST"]; 
    $path = dirname($_SERVER["PHP_SELF"]); 
    $sid = session_name() . "=" . session_id(); 
    header("Location: index.php?$sid"); 
    exit; 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
... 
... 
and rest of the html code 

이 문제를 해결하기 위해 주변을 둘러 보았고이 사이트에서도 이와 관련된 몇 가지 게시물을 보았습니다. 그러나 이것에 대한 올바른 이해를 얻을 수는 없습니다 ... 답변을 찾을 수 없습니다.

도와주세요.

감사합니다.

+0

중복 가능한 http://stackoverflow.com/questions/1183726/headers-already-sent-in-php, http://stackoverflow.com/questions/1891969/php-headers-already-sent-error, http://stackoverflow.com/questions/2121473/why-am-i-getting-this-php-session-start-error, http://stackoverflow.com/questions/2346827/im-getting-a-php- 경고 - 수정할 수 없습니다 - 헤더 정보 -하지만 - 내 - 포함 - – outis

+0

이건에 대한 질문과 대답을해야만합니다 – Galen

+0

방금 ​​두 번 취하게 만들었습니다. – outis

답변

0

NotePad는 텍스트 파일의 시작 부분에 BOM을 삽입하는 것으로 알려져 있습니다. 파일을 저장할 때 인코딩으로 유니 코드 또는 UTF-8을 선택하지 않았는지 확인하십시오.

파일의 16 진수 덤프를 작성하여 BOM이 삽입되었는지 확인할 수 있습니다. 이 0x3C로 시작하지 않으면 당신은 그것을 할

http://www.richpasco.org/utilities/hexdump.html

을이 유틸리티를 사용할 수 있습니다, 당신은 BOM을 얻었다.

+0

이 세월 동안 나는이 인코딩에 대해 전혀 눈치 채지 못했습니다. 내가 방금 알아 낸 것을 ANSI로 저장 했으므로이 경고를 더 이상받지 못했습니다.이 초보자를 도와 주셔서 감사합니다. – tooepic

0

<?php 앞에 공백, 개행 또는 기타 문자가 있는지 확인하십시오. session_start() 이전의 모든 출력에서 ​​오류가 발생합니다.

오류는 특히 session.start()가 2 행에있는 동안 출력이 login.php의 1 행에 있음을 나타냅니다. 따라서 아마도 공백이나 다른 문자 일 것입니다.

+0

나는 그랬다. 그 PHP 스크립트는이 HTML 파일의 유일한 스크립트입니다. 나는 "$ _SESSION", "$ host", "$ path", $ sid ","header "및"exit; "앞에 여분의 공백을 없애기 위해 노력했습니다. – tooepic

+0

또한 tooepic

+0

여전히 해결 방법이 없으면 유니 코드 BOM 문제인지 확인할 수 있습니다. 인코딩 설정을 확인하십시오. 텍스트 편집기에서 가능하면 BOM이없는 인코딩을 선택합니다. 다음은이 문제 및 기타 문제에 대한 간단한 설명입니다. http : //bytes.com/topic/php/insights/876324-php-common-newbie-pitfalls-1 -headers-already-sent – grossvogel