【问题标题】:Zend_Session uncaught exceptionZend_Session 未捕获的异常
【发布时间】:2010-07-09 11:56:17
【问题描述】:

所以我的 index.php 中有这个:

Zend_Session::start();

然后在我的 init 方法中的一个控制器中执行:

if (false === isset($this->defaultNamespace->tree)) {
    $this->defaultNamespace->tree = array();
}

这仍然有效。但是在同一个控制器中,我写了这个:

unset($this->defaultNamespace->tree); // I tried commenting this line
$this->defaultNamespace->tree = $this->tree;

我得到一个这样的异常:

<br />
<b>Fatal error</b>:  Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - D:\data\o\WebProjects\elearning\public\index.php(Line:22): Error #2 include() [&lt;a href='function.include'&gt;function.include&lt;/a&gt;]: Failed opening 'SlideQuestion.php' for inclusion (include_path='D:\data\o\WebProjects\elearning/../../library;D:\data\o\WebProjects\elearning/application/../library;.;C:\php\pear;D:\data\o\WebLib\ZendFramework\library;') Array' in D:\data\o\WebLib\ZendFramework\library\Zend\Session.php:493
Stack trace:
#0 D:\data\o\WebProjects\elearning\public\index.php(26): Zend_Session::start()
#1 {main}
  thrown in <b>D:\data\o\WebLib\ZendFramework\library\Zend\Session.php</b> on line <b>493</b><br />

$this->tree 是一个属性,包含一个包含一些对象的数组。

【问题讨论】:

    标签: php zend-framework session


    【解决方案1】:

    好的,我想我解决了这个问题。

    显然这是编码的问题(因为最近经常出现这种情况......)。 Zend_Session 可能只能接受 UTF-8 编码的数据。数组中的一些对象的属性中有 Windows-1250 字符串。

    我只是用 foreach 循环对象并将它们更改为 UTF-8:

    foreach ($array as $obj) {
        foreach ($obj as $property => $value) {
            if (is_string($value)) {
                $obj->$property = iconv('Windows-1250', 'UTF-8', $value);
            }
        }
    }
    

    现在它可以正常工作了。

    用非标准编码(UTF-8 除外,通常是 Windows-1250)编写的该死的国际化应用程序:P

    【讨论】:

      【解决方案2】:

      无法包含文件SlideQuestion.php。 库包含路径错误。

      include_path='D:\data\o\WebProjects\elearning/../../library;
      

      应该是

      include_path='D:\data\o\WebProjects\elearning\..\..\library;
      

      【讨论】:

      • 不,这当然不是问题。当我评论这行 $this->defaultNamespace->tree = $this->tree;一切正常。我可以做 var_dump($this->tree) 一切都很好。
      猜你喜欢
      • 2012-03-14
      • 2010-09-28
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多