2011-04-15 125 views
-2

我知道這已被詢問了一千次,但我仍然找不到錯誤。警告:無法修改標題信息

<body><?php 
$con = mysql_connect("xxxxxxxxx","xxxxxxxxxxx","xxxxxxxx"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("xxxxxxxxxxx", $con); 

$sql="INSERT INTO mytable (row1, row2) 
VALUES 
('$_POSTrow1]','$_POST[row2]')"; 




if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
header("Location: compsubmit.php}"); 



mysql_close($con) 
?></body> 
+3

*警告:捂臉傳入* – Gordon 2011-04-15 10:31:23

+2

而強制性警告......不要在你的SQL語句中直接使用用戶輸入!閱讀關於預準備語句和SQL注入。 – enricog 2011-04-15 10:34:44

+0

parkin:你找到你的問題的答案..? – balanv 2011-04-20 13:21:08

回答

5
<body> 

這就是錯誤。這顯然是一種輸出。在你的文件頭ob_start(); ..這將解決這個問題...

,當我得到這個問題很多次..加入ob_start()清零萬阿英,蔣達清:

+0

還有一個關閉的身體標記,複製時只是錯過了 – 2011-04-15 10:31:16

+0

@Nige:那真的沒關係。 PHP標籤''以外的所有內容都會發送到瀏覽器。 ''_is_外部,它發生_before_'header()'。 – KingCrunch 2011-04-15 10:32:24

+1

謝謝@KingCrunch。現在感覺非常愚蠢,但不會犯同樣的錯誤。 – 2011-04-15 10:40:27

0

添加此代碼。

+0

輸出緩衝不是一種創可貼。 – 2012-08-12 03:43:10

-2

聽起來很愚蠢,但你有沒有使用輸出緩衝?

1

您使用header()函數。在使用此功能之前,您無法將任何輸出發送到瀏覽器。而你的<body>是一個輸出。

記住,報頭()必須調用 任何實際的輸出被髮送之前, 或者通過正常的HTML標記,在一個文件中的空白 線,或從PHP。在調用header()之前,包含()或require()函數或 另一個文件訪問函數,並且有 空格或空行輸出 是一個 非常常見的錯誤。使用單個 PHP/HTML文件時存在相同的 問題。

0

這裏<body>是一個錯誤,但如果該文件的編碼是UTF與BOM,也可能發生這種錯誤 - 避免的方法是對其進行編碼,而不BOM

相關問題