在这种特殊情况下导致“已发送标题”的原因是什么?

时间:2017-11-22 09:22:38

标签: php mysql cakephp cakephp-3.0

我使用MySQL从数据库中提取一些信息,我将结果发送到Ajax函数,然后在网页上显示结果。

这是我的PHP代码:

        $views = $connection->execute("SELECT profilePic FROM users");
        foreach($views as $views)
        {
            echo "<tr><td><img src='".$views['profilePic']."' /></td></tr>";
        }

由于代码的这一部分出现警告“Headers already sent”:

<img src='".$views['profilePic']."' />

解析时看起来像这样:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPgAAAD4CAYAAADB0SsLAAAgAElE [TRUNCATED] ..." >

如果我删除了 img 部分,则没有警告:

    $views = $connection->execute("SELECT profilePic FROM users");
    foreach($views as $views)
    {
        //this throws no warning:
        echo "<tr><td></td></tr>";
    }

究竟是谁在触发警告?正在应用什么规则?

1 个答案:

答案 0 :(得分:2)

如果您的PHP代码来自您的控制器,那么&#34; echo&#34;引起警告。 您必须在视图模板中执行输出HTML代码的所有操作。

$this->set(compact('views'));

这使您的视图数组在功能视图模板中可用。