无法发送标头;标头已在控制器/登录控制器.php第 14 行中发送


Cannot send headers; headers already sent in controllers/LoginController.php, line 14

我收到阻止任何登录的错误我相信这以前是有效的,现在不再有效。

请在错误消息显示的文件中找到下面的代码阅读类似消息的其他答案,我看到它一直是空白,但没有我不认为的。我并不是一个真正的编码员,只是擅长接受指令,但我看不到 php 的尽头,所以我检查了同一文件夹中的其他文件,但没有一个?没有空格,我如前所述运行了一个 grep -rl,但其他文件似乎也不是。知道吗?我也不知道如何找到提到的整个错误

我查看了错误报告,其中提到了这一点:

a:5:{i:0;s:153:"无法发送标头;标头已在/home/yehaw598/public_html/app/code/local/Meigee/ThemeOptionsIndigo/controllers/LoginController.php, 第 14 行";i:1;s:1371:"#0/home/yehaw598/public_html/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true)

<?php
/**
 * Magento
 *
 * @author    Meigeeteam http://www.meaigeeteam.com <nick@meaigeeteam.com>
 * @copyright Copyright (C) 2010 - 2012 Meigeeteam
 *
 */
class Meigee_ThemeOptionsIndigo_LoginController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $this->loadLayout();
        echo Mage::app()->getLayout()->createBlock('customer/form_login')->setTemplate('customer/form/loginAjax.phtml')->toHtml();
    }
}

调用此的文件是否可能已经输出了一些数据?不太熟悉Magento内部工作原理,但我的猜测是另一个文件具有LoginController.php作为包含,这是已经输出数据的罪魁祸首。尝试查看 html 源代码,看看错误消息之前实际出现的内容。也许会有一个提示(即:错误消息等)

如果这不起作用,我会登录服务器并尝试查找包含登录.php文件的文件,看看里面有什么。文档根目录中的类似内容将有助于找到有问题的文件,并为您提供一个起点:

grep -rl "LoginController.php" . 

显然,这假设了一些 Linux 派生,如果你在 Windows 上,我敢肯定有一个 windows 内置的搜索方法,用于在一组文件中搜索特定字符串,如"LoginController.php"

一旦你确定了可能的文件,看看它上面是否有任何可能正在输出的html,或者php echo命令等,也许是该文件顶部的换行符......你明白了