2012-08-15 2 views
-3

가능한 중복으로 보내.? 나는 많은 다른 사이트에서 보았다
“Warning: Cannot modify header information - headers already sent by” error
Headers already sent by PHP는 헤더 정보를 수정할 수 없습니다 - 헤더가 이미 (출력에서 시작이 무엇을 의미합니까

을 그 문제는 흰색 간격 때문에 문제입니다. 내가 내 php 스크립트의 끝나고 내 PHP 스크립트의 beginginning 전에 흰색 간격을 두지 않아 문제가 있다고 생각하지 않습니다. 여기에 전체 오류입니다 또는

: - :

 <?php 
     require_once("../../includes/database.php"); 
     require_once("../../includes/session.php"); 
     require_once("../../includes/user.php"); 

     if($session->is_logged_in()) 
     { 
     header("Location:index.php"); 
     } 
     if(isset($_POST['submit'])) 
     { 
     $username = trim($_POST['username']); 
     $password = trim($_POST['password']); 
     //Check Databases 
     $found_user = User::authenticate($username, $password); 
     $found_user->id = $found_user[0]; 
     if($found_user) 
     { 
      $session->login($found_user); 
      header("Location:index.php"); 
     } 
     else 
     { 
      echo "Username/password combination incorrect."; 
     } 
      } else { //form is not submitted 
     $username = ""; 
     $password = ""; 
     } 
     ?> 
     <html> 
      <head> 
      </head> 
      <body> 
      <h1>Photo Gallery</h1> 
      <div id="main"> 
      <h2>Staff Login</h2> 
      <form action="login.php" method="post"> 
      <table> 
     <tr> 
       <td>Username:</td> 
       <td> 
        <input type="text" name="username" maxlength="30" value="" /> 
       </td> 
      </tr> 
      <tr> 
       <td> Password:</td> 
       <td> 
        <input type="password" name="password" maxlength="30" value="" /> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="submit" name="submit" value"Login" /> 
       </td> 
      </tr> 
      </table> 
      </form> 
      </div> 
      </body> 
      </html> 
      <?php if(isset($database)) 
     { 
       $database->close_connection(); 
     } 
      ?> 
헤더 정보를 수정할 수 없습니다 이미 의해 전송 헤더 다음

라인 (22)에 관리자/login.php에서 (출력 /admin/login.php:19에서 시작하는) 내 코드입니다

+1

는'출구 (추가)'모든 헤더 후. – MrYanDao

+0

검색은 친구입니다 ...... –

+0

그냥 output_buffering을 php.ini에서 활성화하십시오 :) –

답변

0

header()을 사용하여 사용자를 리디렉션하는 경우 exit()을 사용하여 header() 통화 후에 명시 적으로 스크립트를 중지하십시오. 그렇지 않으면 스크립트는 계속해서 모든 것을 출력하려고 노력합니다. 예를 들어

:

if($session->is_logged_in()) 
{ 
    header("Location:index.php"); 
    exit(); 
} 
관련 문제