Php 在我的数据库中重复注释,如何修复?

Php 在我的数据库中重复注释,如何修复?,php,html,sql,database,Php,Html,Sql,Database,我有一些问题,每次我刷新页面,它重复的最后一条评论。我尝试使用重定向命令: header("location:../../index.php"); 但它给了我一个错误: 警告:无法修改标题信息-标题已由发送 (输出开始于 /home/timpovdnik/gymshark.timpovdnik.xyz/header.php:87) /home/timpovdnik/gymshark.timpovdnik.xyz/PHP/comments.PHP在线 9' 这是我的代码: <?php

我有一些问题,每次我刷新页面,它重复的最后一条评论。我尝试使用重定向命令:

header("location:../../index.php");
但它给了我一个错误:

警告:无法修改标题信息-标题已由发送 (输出开始于 /home/timpovdnik/gymshark.timpovdnik.xyz/header.php:87) /home/timpovdnik/gymshark.timpovdnik.xyz/PHP/comments.PHP在线 9'

这是我的代码:

<?php
    function setComments($conn) { // Funkcija, ki jo kasneje kličem v LoseFat in GainMuscles datoteki //zraven dodamo se spremenljivko $conn, ki je iz datoteke baza.php
        if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
            $uid = $_POST['uid'];
            $date = $_POST['date'];
            $message = $_POST['message'];
            $sql = "INSERT INTO komentarji (uime, sporocilo, datum, uporabnik_id, program_id, objava_id) VALUES ('$uid', '$message', '$date', '1', '1', '1')";
            $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
            header("location:../index.php");
            exit();
        }
    }

    function getComments($conn) {
        $sql = "SELECT * FROM komentarji";
        $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
        while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
            echo "<div class='row'>";
                echo "<div class='comment-box'>";
                    echo $row['uime']."<br>";
                    echo $row['datum']."<br>";
                    echo nl2br($row['sporocilo']);
                echo "</div>";
            echo "</div>";
        }
    }
?>

我修复了它,还添加了Mysqli函数

谢谢你的建议

<?php
include 'baza.php';

    if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
        $uid = $_POST['uid'];
        $date = $_POST['date'];
        $message = $_POST['message'];

        $sql = "INSERT INTO komentarji (uime, sporocilo, datum) VALUES (?, ?, ?);";
        $stmt = mysqli_stmt_init($conn);

        if (!mysqli_stmt_prepare($stmt, $sql)) {
                    header("Location: ../loseFat.php?error=sqlerror"); // Če stavek ne dela
                    exit();
            }
            else {        
            mysqli_stmt_bind_param($stmt, "sss", $uid, $message, $date); 
            mysqli_stmt_execute($stmt); // Executa stavek v DB

            header("Location: ../loseFat.php?comment=success");
            exit();
        }
    }


function getComments($conn) {
    $sql = "SELECT * FROM komentarji";
    $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
    while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
        echo "<div class='row'>";
            echo "<div class='comment-box'>";
                echo $row['uime']."<br>";
                echo $row['datum']."<br>";
                echo nl2br($row['sporocilo']);
            echo "</div>";
        echo "</div>";
    }
}

此警告通常在写入输出后调用Header函数时出现,例如。G使用print或echo.To添加@MSTRmt所说的内容,如果在PHP之前有任何HTML(甚至是空行),甚至可能会出现此错误。