PHP标头(“位置”)已发送错误消息

PHP标头(“位置”)已发送错误消息,php,html,Php,Html,我知道这个话题已经存在了,但是这个答案对我没有帮助。 我有一个公式,如果我重新加载页面,公式将再次发送相同的内容。现在我写了这个。这是我现在的文件代码: <?php $article_id = $_GET['post']; if(isset($_REQUEST['submit'])){ $article_id = $_GET['post']; $name = $_POST['name']; $nachricht = $_PO

我知道这个话题已经存在了,但是这个答案对我没有帮助。 我有一个公式,如果我重新加载页面,公式将再次发送相同的内容。现在我写了这个。这是我现在的文件代码:

<?php
    $article_id = $_GET['post'];
    if(isset($_REQUEST['submit'])){

        $article_id = $_GET['post'];
        $name = $_POST['name'];
        $nachricht = $_POST['nachricht'];
        $aufgabe = $_POST['aufgabe'];
        $random = $_POST['random'];

        $successfull = FALSE;
        $error_message_empty = "";
        $counter = 0;

        if(empty($name)){
            $successfull = FALSE;
            $error_message_empty = $error_message_empty . "<li>Name</li>";
            $counter++;
        }

        if(empty($nachricht)){
            $successfull = FALSE;
            $error_message_empty = $error_message_empty . "<li>Nachricht</li>";
            $counter++;
        }

        if(empty($aufgabe)){
            $successfull = FALSE;
            $error_message_empty  = $error_message_empty . "<li>Spamschutz</li>";
            $counter++;
        }
        else{
            $sql = "SELECT * FROM captcha WHERE captcha_id='".$random."'";
            $result = mysqli_query($db, $sql);
            while($row=mysqli_fetch_assoc($result)){
                if(!($row['captcha_solution'] == $aufgabe)){
                    $successfull = FALSE;
                    $error_message_empty  = $error_message_empty . "<li>Spamschutz</li>";
                    $counter++;
                }
            }
        }

        if($counter != 0){
        }
        else{
            $successfull = TRUE;
        }

        if($successfull == TRUE){
            $eintrag = "INSERT INTO comments (comment_author, comment_date, comment_message, comment_post_id) VALUES ('$name', NOW(), '$nachricht', '$article_id')";
            $eintragen = mysqli_query($db, $eintrag);
            header('Location: index.php'); // ERROR MESSAGE
            exit;
        }



        if(!(empty($error_message_empty))){
            $error_message_empty = "<ol class='contact-form_error-ol'>".$error_message_empty;
            $error_message_empty = $error_message_empty . "</ol>";
        }
    }

?>


<div class="section-head">
        <?php
            $select = $_GET['post'];
            $sql = "SELECT * FROM posts WHERE post_id='".$select."'";
            $result=mysqli_query($db,$sql);

            while($row=mysqli_fetch_assoc($result)){
                $sql2 = "SELECT * FROM categories";     
                $result2=mysqli_query($db,$sql2);

                while($row2=mysqli_fetch_assoc($result2)){
                    if($row['post_categorie'] == $row2['categorie_id']){
                        echo "<p>Der ausgewählte Beitrag befindet sich in der Kategorie: <a href='index.php?categorie=$row2[categorie_id]' class='link'>$row2[categorie_name]</a></p>";
                    }
                } 
            }
        ?>
</div>
<div class="section-body">
        <?php
            $sql = "SELECT * FROM posts WHERE post_id='".$select."'";
            $result = mysqli_query($db, $sql);
            $counter = 1;
            while($row=mysqli_fetch_assoc($result)){
                echo "<article>";
                    echo "<a class='article-title'>$row[post_title]</a>";
                    echo "<br>";
                    $d = date_create($row['post_date']); 
                    $datum = $d->format('j.m.Y \u\m H:i \U\h\r'); 
                    echo "<a class='article-author-date'>geschrieben von $row[post_author] am $datum</a>";
                    echo "<br>";
                    echo "<br>";
                    echo "<p class='article-message'>$row[post_message]</p>";

                    echo "<div class='article-div-image'>";
                        $counter2 = 1;
                        for($i = 1; $i <= 4; $i++){
                            if($row['post_image_'.$i] != "0"){
                                if($counter2 % 2 == 0){
                                    echo '<a data-lightbox="image-'.$counter.'" href="upload/'.$row['post_image_'.$i].'" class="wow"><img src="upload/'.$row['post_image_'.$i].'" class="article-image"></a>';
                                    $counter2 = 0;
                                }
                                else{
                                    echo '<a data-lightbox="image-'.$counter.'" href="upload/'.$row['post_image_'.$i].'" class="wow"><img src="upload/'.$row['post_image_'.$i].'" class="article-image margin-right"></a>';    
                                }
                            }
                            $counter2++;
                        }
                    echo "</div>";

                    if($counter != mysqli_num_rows($result)){
                        echo "<hr>";
                    }
                    $counter++;
                echo "</article>";
            } 
        ?>
        <hr>
        <article>
            <a class="article-title">Hinterlasse doch ein Kommentar</a><br>
            <a>Alle unten aufgelisteten Felder müssen ausgefüllt werden.</a>        
            <?php 
                if(!(empty($error_message_empty))){
                    echo "<div class='contact-form-error'>";
                        echo "Folgende Felder wurden nicht korrekt ausgefüllt: <br>";
                        echo $error_message_empty."<br>";
                        echo "Nach der Behebung der oben aufgelisteten Fehler, versuchen Sie es erneut.";
                    echo "</div>";
                }
                else if(!(empty($error_spam))){
                    echo "<div class='contact-form-error'>";
                        echo $error_spam;
                    echo "</div>";
                }
                else if(isset($successfull)){
                    if($successfull == TRUE){
                        echo "<div class='contact-form-success'>";
                            echo "Der Kommentar wurde erfolgreich erstellt!";
                        echo "</div>";
                    }
                }
            ?>
            <form class="contact-formular" action="index.php?post=<?php echo $article_id ?>" method="POST">
                <a class="article-input-a">Name:</a><br><input name="name" type="text"  maxlength="30" value="<?php if(isset($_POST['name'])){ echo $_POST['name'];}?>"><br>
                <a class="article-input-a">Nachricht:</a><br><textarea name="nachricht"><?php if(isset($_POST['nachricht'])){ echo $_POST['nachricht'];}?></textarea><br>
                <a class="article-input-a">Captcha:</a><br>
                <?php
                    $sql = "SELECT * FROM captcha";
                    $result = mysqli_query($db, $sql);
                    $random = rand(1, 3);
                    while($row=mysqli_fetch_assoc($result)){
                        if($random == $row['captcha_id']){
                            echo "<img class=contact-formular-captcha src=images/captcha/$row[captcha_task]>";
                            echo "<input type='hidden' name='random' value='$random' />";
                        }
                    }   
                ?>
                <br><input name="aufgabe" type="text"  maxlength="30"><br>
                <button class="contact-formular-button" name="submit" type="submit">Kommentar abschicken</button>   
            </form>
        </article>
        <div class="comment-box">
            <?php
                $select = $_GET['post'];
                $sql = "SELECT * FROM comments WHERE comment_post_id='".$select."' ORDER BY comment_date DESC";
                $result=mysqli_query($db,$sql);
                $number = mysqli_num_rows($result);

                if(empty($number)){
                }
                else{
                    echo "<hr>";
                    echo "<a class='article-title'>Bereits erstelle Kommentare</a><br>";
                    while($row=mysqli_fetch_assoc($result)){
                        echo "<div class='comment-only-one'>";
                        $d = date_create($row['comment_date']); 
                        $datum = $d->format('j.m.Y \u\m H:i \U\h\r'); 
                        echo "Geschrieben von $row[comment_author] am $datum<br><br>";
                        echo "$row[comment_message]<br>";
                        echo "</div>";
                    }
                }
            ?>
        </div>
</div>

带模板的零件在哪里

我想你以前已经把它发送到浏览器了吧

这意味着您不能更改标题

如果您从头开始创建站点(不使用任何cms或框架)

您可以使用以下命令启动index.php主控制器:

ob_start()

并以您想要的任何特定方式处理输出

例如:

ob_clean();
header('Location: index.php'); // ERROR MESSAGE
根据你的帖子变化 现在我们可以看到,您必须更改您的index.php以:


可能重复@Rizier123这是他说的问题,对他没有帮助。你从未设置
$db
。这可能会导致调用
mysqli\u query()
时打印错误消息。是的,我在问题中也写了这个链接,但答案对我没有帮助。@Barmar我无法想象在副本中不是答案!现在我的代码如下所示:“ob_clean();标题('Location:index.php');//错误消息退出;}',但是,首先要做的事情是改变index.php中的第一行,这是行不通的!检查我的最新答案的底部。第一个字符必须是
不客气:-)顺便说一句,这是100%重复:-)试着更深入地阅读和理解解释:-)祝你好运!
<?php


    $db = mysqli_connect("localhost", "root", "", "blog");
    mysqli_set_charset($db, 'utf8');
    if(!$db){
        die("Verbindung zur Datenbank fehlgeschlagen!");
    }

?>
ob_clean();
header('Location: index.php'); // ERROR MESSAGE