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"

同じページに残りたい データベースに値を挿入するとき、これは私のコードです:

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

?>

何か案が?どうも!

4

4 に答える 4

1

2行目と書いてありますが、PUBLICARCOMENTARIO.PHPの2行目には何もありません。

PHP 開始タグの前の「PUBLICARCOMENTARIO.PHP」の上にスペースや改行がないことを確認してください。

PUBLICARCOMENTARIO.PHP に PHP しか含まれていない (HTML が含まれていない) 場合は、閉じる ?> も必要ありません。

基本的に、エラーは、既に何かを出力しているため、ヘッダー ("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 に答える