Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend_会话:在将任何输出发送到浏览器之前,必须启动会话_Php_Zend Framework_Zend Session - Fatal编程技术网

Php Zend_会话:在将任何输出发送到浏览器之前,必须启动会话

Php Zend_会话:在将任何输出发送到浏览器之前,必须启动会话,php,zend-framework,zend-session,Php,Zend Framework,Zend Session,我以前遇到过这个问题,但我不记得如何解决它。我已经创建了一个“裸骨”无法获得任何更简单的控制器,我只是尝试向浏览器回显一些内容,我收到以下消息: Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Session must be started before any output has been sent to the browser ... 这是我的整个控制器。它显示“成功”,但也显示错误消息。我怎样

我以前遇到过这个问题,但我不记得如何解决它。我已经创建了一个“裸骨”无法获得任何更简单的控制器,我只是尝试向浏览器回显一些内容,我收到以下消息:

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Session must be started before any output has been sent to the browser ...
这是我的整个控制器。它显示“成功”,但也显示错误消息。我怎样才能使错误消息静音,这样我就可以简单地向浏览器回显某些内容

<?php

class CacheController extends Zend_Controller_Action
{
    public function clearAction()
    {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();
        try {
            $result = Model_Cache::emptyCache(array('foobar'=>1));

            if ($result['status'] == true) {
                echo 'Success';
            } else {
                echo 'Error: ' . $result['message'];
            }
        } catch (Exception $e) {
            echo 'Error: ' . $e->getMessage();
        }
    }
}

从内存来看,此错误通常是由于非PHP代码在预期的会话初始化之前启动输出造成的。通常是由于不必要的?>标记后出现空格或回车。这是我要检查的第一件事。

错误听起来像是说,在数据发送到浏览器之前,您没有启动Zend_会话。通常,我会在我的引导程序中粘贴一些类似的东西来启动Zend_会话

protected function _initSessions()
{
    Zend_Session::start();
}
这将使您进入Zend框架。如果您在框架之外使用此工具,只需在回显或打印任何内容之前使用PHP脚本顶部附近的内行代码即可


希望有帮助

会话可能是通过application.ini或php.ini会话自动启动的吗?如果使用ide,请尝试搜索空间


有时使用空格搜索会有帮助。

由于某种原因,我试图在应用程序完成引导后在index.php文件中设置一些会话变量。我不确定这之前为什么没有引起问题,但当我从index.php中删除它时,它起了作用

$userSession = new Zend_Session_Namespace('Auth');
$userSession->forcePasswordChange = false;

我发现了一篇关于这个问题的类似帖子:

我也遇到了同样的问题,但是在上一个链接中提出的解决方案对我来说不起作用,所以在一些测试之后,我发现Zend_类会话中有一个变量

 /**
 * Whether or not Zend_Session is being used with unit tests
 *
 * @internal
 * @var bool
 */
public static $_unitTestEnabled = false;
如果将此变量设置为true,则phpunit执行不会出现任何问题。至少我的情况就是这样


希望这个帮助

我遇到了同样的问题,我的问题是我在屏幕上发出了一个严格的警告

调试这个问题的一个好方法是使用ob_start和ob_get_内容


希望有帮助

我收到了相同的错误消息。但只有一个动作。问题是由控制器动作中的这两条线引起的:

$customersModel = new Default_Model_DbTable_Customers();
$this->view->customers = $customersModel->fetchAll();

在我的数据库中有6000多名客户。因此,推送大量记录以供查看是不好的。

尝试使用会话时,需要使用上面列出的代码启动Zend_会话。我想你是故意开了个会。但如果不是这样的话,就像你在这里说的那样移除也同样有效。