2015-03-02 74 views
-2

無法修改頭文件信息 - 在C:\ xampp \ htdocs \中已經發送頭文件(輸出在C:\ xampp \ htdocs \ d \ login.php中爲15)第41行的d \ login.php
我在登錄表單時遇到此錯誤第41行的問題是什麼?無法修改頭信息 - 已發送的頭文件

<!doctype html> 
 
<html> 
 
<head> 
 
<title>Login</title> 
 
</head> 
 
<body> 
 

 
<p><a href="register.php">Register</a> | <a href="login.php">Login</a></p> 
 
<h3>Login Form</h3> 
 
<form action="" method="POST"> 
 
    Username: <input type="text" name="user"><br /> 
 
    Password: <input type="password" name="pass"><br /> \t 
 
    <input type="submit" value="Login" name="submit" /> 
 
</form> 
 
<?php 
 
if(isset($_POST["submit"])){ 
 
    if(!empty($_POST['user']) && !empty($_POST['pass'])) { 
 
     $user=$_POST['user']; 
 
     $pass=$_POST['pass']; 
 

 
     $con=mysql_connect('localhost','yoyo','glappyhunt') or die(mysql_error()); 
 
     mysql_select_db('user_registration') or die("cannot select DB"); 
 

 
     $query=mysql_query("SELECT * FROM login WHERE username='".$user."' AND password='".$pass."'"); 
 
     $numrows=mysql_num_rows($query); 
 
     
 
     if($numrows!=0) { 
 
      while($row=mysql_fetch_assoc($query)) { 
 
       $dbusername=$row['username']; 
 
       $dbpassword=$row['password']; 
 
      } 
 

 
      if($user == $dbusername && $pass == $dbpassword0 { 
 
       (ob_start()); 
 
       $_SESSION['sess_user']=$user; 
 

 
       /* Redirect browser */ 
 
       header("Location: member.php"); 
 
      } 
 
     } else { 
 
      echo "Invalid username or password!"; 
 
     } 
 
    } else { 
 
     echo "All fields are required!"; 
 
    } 
 
} 
 
?> 
 

 
</body> 
 
</html>

+1

可能重複的[如何修復]標題已發送「PHP錯誤」(http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) – Rizier123 2015-03-02 09:27:19

回答

0

Header必須是所有輸出之前,將PHP腳本頁面的頂部。

<?php 
    ... 
?> 

<!doctype> 
<html> 
    ... 
+0

感謝它工作:) – 2015-03-02 09:16:54

0

將if條件放在頁面頂部。

你不應該發送任何輸出之前發送標頭甚至不是HTML。在您的代碼中,html標籤在調用標頭之前作爲輸出發送。根據php.net的標題信息。

請記住,在發送任何實際輸出之前,必須調用header(),或者使用普通的HTML標記,文件中的空行或PHP。

通常頭包含要發送的內容的信息,如內容類型,大小,資源狀態。如果您先發送原始輸出然後發送標題,則標題無意義,因此錯誤。

0

除了豹的回覆之外,還有一些情況是我們必須在html顯示之後做重定向。儘管如此,這可能不被認爲是一種好的做法(我將在所有事情完成後加載視圖),但我們可以通過JavaScript重定向進行一些修改。

在這個例子中,我們也可以做到以下幾點:

if($user == $dbusername && $pass == $dbpassword0 { 

     $_SESSION['sess_user']=$user; 
     /* Redirect browser */ 
     echo '<script>document.location.href="members.php";</script>'; 
     die(); 
      } 

再次,這是不是真的是最好的做法,但可能會派上用場的時候。

相關問題