在同一页面中休息PHP

时间:2012-12-09 22:19:26

标签: html php

  

可能重复:
  Headers already sent by 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"

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

VER.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>

PUBLICARCOMENTARIO.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")

?>

有什么想法吗? THX!

4 个答案:

答案 0 :(得分:1)

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

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

如果PUBLICARCOMENTARIO.PHP只包含PHP(无HTML),那么你不应该要求关闭吗?&gt;任

基本上错误是说无法输出标题(“xxx”),因为您已经输出了其他内容。通常在打开PHP标记之前是一些HTML或一些空格。

答案 1 :(得分:0)

你应该在PUBLICARCOMENTARIO.PHP中的“&lt;?php”之前删除空行

答案 2 :(得分:0)

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

答案 3 :(得分: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]。

使用此功能..但是在刷新页面之前不会显示输入的值..为什么??