无法修改标头信息 - 标头已经发送php错误

时间:2015-12-18 13:33:06

标签: php

我已经用Php& amp;做了一个基本的消息传递系统。我想知道为什么我收到此错误消息:

警告:无法修改标题信息 - 已在第33行发送的标题

这是我的完整代码:

    <?php 
if (isset($_GET['hash'])&&!empty($_GET['hash'])){
        $hash = mysqli_escape_string($con, $_GET['hash']);
        $message_query = "SELECT from_id, message FROM messages WHERE group_hash='$hash'";
        $run_messages = mysqli_query($con,$message_query);
        while($row_messages = mysqli_fetch_array($run_messages, MYSQLI_ASSOC)){
             $from_id = $row_messages['from_id'];
             $message = $row_messages['message'];

             $user_query = "SELECT username FROM admins WHERE id='$from_id'";
             $query_run = mysqli_query($con, $user_query);
             $run_user = mysqli_fetch_array($query_run, MYSQLI_ASSOC);
             $from_username = $run_user['username'];

            echo "
                <div class='widgetbox'>
                    <h4 class='widgettitle'><i>$from_username</i></h4>
                    <div class='widgetcontent'>
                        $message
                    </div>
                </div>
            ";
        }
        ?>

        <div class='widgetbox'>
            <form method='POST' action=''>
                <?php 
                if (isset($_POST['message'])&&!empty($_POST['message'])){
                    $new_message = $_POST['message'];
                    $insert_reply = "INSERT INTO messages VALUES('','$hash','$id','$new_message')";
                    $run_reply = mysqli_query($con,$insert_reply);
                    header('Location: conversations.php?hash='.$hash);
                }
                ?>
                <h4 class='widgettitle'>Enter Your Reply <a class='close'>&times;</a> <a class='minimize'>&#8211;</a></h4>
                <div class='widgetcontent'>
                <textarea name='message' rows='6' cols='50'></textarea></br>
                <button name='submit' type='submit' class='btn btn-primary'>Send Message</button>
                </div>
                </br></br>
            </form>
        </div>
        <?php
}else{
    header('Location: dashboard.php');
}
?>

这是第33行:

header('Location: conversations.php?hash='.$hash);

我搜索了很多关于此错误消息&amp;我找到了两个有用的答案:

1- header必须位于页面顶部,因为我必须将其放在那里,因为它是我的表单操作脚本的一部分。

2-使用 Javascript 标头标记这不是一个好主意,因为我需要通过 Php 处理此链接:{{1} }

因此我必须修复此标头问题。如果你知道我怎么能这样做,请告诉我......我真的很感激!谢谢:))

1 个答案:

答案 0 :(得分:0)

您正在输出一些HTML标记,然后在第33行重定向。因此警告。

action="{{ url('/auth/register') }}