0

可能重复:
PHP 已发送的标头

我有一个数据库,当我汇总信息时,我收到此错误:

"Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/mostra/html/noticias/publicacomentario.php:2) in /Applications/XAMPP/xamppfiles/htdocs/mostra/html/noticias/publicacomentario.php on line 14"

我想在同一页面中休息当我将值插入数据库时​​,这是我的代码:

版本.PHP

<form action="noticias/publicacomentario.php" method="post" id="commentform"  onsubmit="MM_validateForm('usuario','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
<fieldset>
    <input type="hidden" name="noticia_id" value="<?php echo $id;  ?>"><br>
    <p><label>NOMBRE *</label>
    <input type="text" name="usuario"></p>
    <p><label for="email">EMAIL (No se publicará) *</label>
    <input type="text" name="email"></p>

    <p><label for="comment">COMENTARIO</label>
    <textarea name="comentario" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
    <p><input type="submit" name="submit" id="submit" tabindex="5" value="Enviar " /></p>
</fieldset>
</form>

公共汽车评论.PHP

<?php

require ('connect.php');
$id=$_POST['noticia_id'];
$nick=$_POST['usuario']; 
$email=$_POST['email']; 
$comentario=$_POST['comentario']; 
$query = "INSERT INTO comentarios (usuario,email,comentario,noticia_id, fecha) VALUES('$nick','$email','$comentario','$id', NOW())";
mysql_query($query) or die(mysql_error());

$query = "UPDATE  noticias SET num_comentarios= num_comentarios+1 where id_noticia='".$id."'";
mysql_query($query) or die(mysql_error());
header("Location: ver.php?id=$id")

?>

任何想法?谢谢!

4

4 回答 4

1

它说的是第 2 行,但 PUBLICARCOMENTARIO.PHP 的第 2 行实际上没有任何内容。

确保在 PHP 开始标记之前的“PUBLICARCOMENTARIO.PHP”上方没有任何空格或换行符。

如果 PUBLICARCOMENTARIO.PHP 仅包含 PHP(无 HTML),那么您也不需要关闭 ?>。

基本上错误是说 header("xxx") 不能输出,因为你已经输出了其他东西。通常在开始 PHP 标记之前是一些 HTML 或一些空格。

于 2012-12-09T22:24:47.910 回答
0

我把 PUBLICARCOMENTARIO.PHP 放到 VER.PHP

                                <form action="" method="post" id="commentform"  onsubmit="MM_validateForm('usuario','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
                                        <fieldset>
                                        <input type="hidden" name="noticia_id" value="<?php echo $id;  ?>"><br>
                                            <p><label>NOMBRE *</label>
                                            <input type="text" name="usuario"></p>
                                            <p><label for="email">EMAIL (No se publicará) *</label>
                                            <input type="text" name="email"></p>

                                            <p><label for="comment">COMENTARIO</label>
                                            <textarea name="comentario" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
                                            <p><input type="submit" name="submit" id="submit" tabindex="5" value="Enviar " /></p>

                                        </fieldset>
                                    </form>
                                </div>



                                <?php
if ($_POST) {
require ('connect.php');
$id=$_POST['noticia_id'];
$nick=$_POST['usuario']; 
$email=$_POST['email']; 
$comentario=$_POST['comentario']; 
$query = "INSERT INTO comentarios (usuario,email,comentario,noticia_id, fecha) VALUES('$nick','$email','$comentario','$id', NOW())";
mysql_query($query) or die(mysql_error());

$query = "UPDATE  noticias SET num_comentarios= num_comentarios+1 where id_noticia='".$id."'";
mysql_query($query) or die(mysql_error());
}
header("Location: $_SERVER[PHP_SELF]?id=$id");
?>

在 HEADER("location: ....) 里面我把 $_SERVER[PHP_SELF].

有了这个作品..但是在刷新页面之前不会显示输入的值..为什么?

于 2012-12-09T23:38:55.790 回答
0

您应该在 PUBLICARCOMENTARIO.PHP 中删除“<?php”之前的空白行

于 2012-12-09T22:34:35.473 回答
0

检查 PUBLICARCOMENTARIO.PHP 是否保存为 UTF8+BOM,如果是,则删除 BOM。您可以使用 Notepad++ 或任何其他优秀的编辑器来完成此操作。

于 2012-12-09T22:55:36.813 回答