2011-04-15 121 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

相关问题