2012-09-14 56 views
0

請幫助我:當我鎖定LOGIN按鈕時,顯示錯誤,我無法修復此問題。我是新的PHP。PHP錯誤:警告:無法修改標題信息 - 標題已發送

警告:不能更改頭信息 - 頭已經發出(輸出開始/home/kanak/public_html/celltopc/login.php:33)在/home/kanak/public_html/celltopc/login.php在線56

我的代碼是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Login</title> 
<link href="css/usercss.css" rel="stylesheet" type="text/css" /> 
<style type="text/css"> 
<!-- 
body { 
    background-image: url(images/LoginForm_bg.jpg); 
    background-repeat: repeat; 
} 
--> 
</style></head> 

<body> 
<div class="shadow" id="login"> 
    <div id="login-body"> 
    <form action="login.php" method="post" name="loginform"> 
    <strong>Username:</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input name="username" type="text" class="input" value="username" maxlength="10" /> 

    <p><br /> 
    <strong>Password:</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input name="password" type="password" class="input" value="password" /> 

    <p><br /> 
    <input type="submit" name="submit" value="Login" width="30" class="myButton"> 

    </form> 

    <p> <br /> 
<?php 
ob_start(); 
@session_start(); 
include'include/config.php'; 
include'include/opendb.php'; 
@$username=$_POST['username']; 
@$password=$_POST['password']; 

    if($username&&$password) 
    { 
    $connect=mysql_connect("$dbhost","$dbuser","$dbpass")or die("Couldnt connect to Database"); 
    mysql_select_db("$dbname") or die ("Could not find to Database"); 
    $query = mysql_query ("SELECT * FROM user WHERE username='$username'"); 
    $numrows = mysql_num_rows($query); 
    if ($numrows != 0) 
     { 
     while ($rows = mysql_fetch_assoc($query)) 
      { 
      $dbusername = $rows['username']; 
      $dbpassword = $rows['password']; 
      } 
       if($username==$dbusername&&$password==$dbpassword) 
       { 
header("location:main.php"); 

$_SESSION['username']=$dbusername; 
       } 
       else   
       die("<p class=error>*&nbsp;Increate Password</p>");  

     } 
     else die("<p class=error>*&nbsp;The username doesnot exist</p>"); 
    } 
    else die ("<p class=text>*&nbsp;Please entre a username and password</p>"); 
?> 
</div> 
</div> 

</body> 
</html> 

回答

13

你打電話ob_start()之前發送HTML。所以當PHP試圖設置你的會話cookie時,它不能,並且你會得到警告。

爲了解決這個問題,將PHP代碼爲ob_start()到文件的頂部:

<?php 
ob_start(); 
session_start(); 
?> 
<!DOCTYPE.... 
+0

好,以谷歌這樣的回答沒有壓力自己 –

7

你需要開始使用會話在session_start(),任何輸出之前。

在session_start

<?php 
    session_start(); 
?> 
<html> 
    <!-- Output --> 
</html> 

或者您可以使用輸出緩衝,就像你已經開始嘗試。這將緩衝ob_start之間),並使用ob_flush)任何東西((

輸出緩衝器

<?php 
    ob_start(); 
?> 
<html> 
    <!-- Output --> 
</html> 
<?php 
    session_start(); 
    ob_flush(); 
?> 
+0

由於它固定 –

相關問題