为什么不用session Kohana 3.3?
Why do not the session Kohana 3.3?
将 php 从版本 4 更新到 5.5 后,在 Kohana 3.3.3 中停止工作会话。当您调用:Session :: instance ('database') 时出现错误:"Error reading session data."
这是为什么?
Session_Exception [ 1 ]: Error reading session data.
SYSPATH/classes/Kohana/Session.php [ 324 ]
319 }
320 }
321 catch (Exception $e)
322 {
323 // Error reading the session, usually a corrupt session.
324 throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
325 }
326
327 if (is_array($data))
328 {
329 // Load the data locally
SYSPATH/classes/Kohana/Session.php [ 125 ] » Kohana_Session->read(arguments)
MODPATH/database/classes/Kohana/Session/Database.php [ 74 ] » Kohana_Session->__construct(arguments)
SYSPATH/classes/Kohana/Session.php [ 54 ] » Kohana_Session_Database->__construct(arguments)
APPPATH/classes/Controller/Base.php [ 17 ] » Kohana_Session::instance(arguments)
APPPATH/classes/Controller/Index.php [ 9 ] » Controller_Base->before()
SYSPATH/classes/Kohana/Controller.php [ 69 ] » Controller_Index->before()
{PHP internal call} » Kohana_Controller->execute()
SYSPATH/classes/Kohana/Request/Client/Internal.php [ 97 ] » ReflectionMethod->invoke(arguments)
SYSPATH/classes/Kohana/Request/Client.php [ 114 ] » Kohana_Request_Client_Internal->execute_request(arguments)
SYSPATH/classes/Kohana/Request.php [ 997 ] » Kohana_Request_Client->execute(arguments)
DOCROOT/index.php [ 118 ] » Kohana_Request->execute()
with php 5.5需要用到模块melancholy,或者PDO,而不是mysql,嗯,还是关掉这些错误的输出到index.php
在 kohana 的 Session.php 文件的 catch 块中添加一个 var_dump($e) 异常被抛出的地方(就像在您粘贴的代码中一样),您会发现真正的问题;)
首先。
检查 php ini 中的会话保存路径,以及保存会话文件的目录权限。在我的例子中是 /tmp.
转到 /VAR/LOG 并检查 Apache 错误日志。
然后,打开SYSPATH/application/bootstrap。php
查找
Kohana::init(array(
'base_url' => '/',
'index_file' => FALSE,
'errors' => TRUE
));
改为
Kohana::init(array( 'base_url' => '/', 'index_file' => FALSE,
'errors' => FALSE ));
并且您会看到来自您的 php 解释器或 apache 的错误。
如果对您没有帮助。
查找SYSPATH/classes/Kohana/Session.php [324]
并替换它
throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
并将其替换为
throw new Session_Exception('Error reading session data.'. " [SID:".$id."(".$this->id()."), name:".$this->_name."][Details: " . $e . "]\n", NULL, Session_Exception::SESSION_CORRUPT);
你会发现你的错误。
在我的例子中是数据库错误。
将 php 从版本 4 更新到 5.5 后,在 Kohana 3.3.3 中停止工作会话。当您调用:Session :: instance ('database') 时出现错误:"Error reading session data."
这是为什么?
Session_Exception [ 1 ]: Error reading session data.
SYSPATH/classes/Kohana/Session.php [ 324 ]
319 }
320 }
321 catch (Exception $e)
322 {
323 // Error reading the session, usually a corrupt session.
324 throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
325 }
326
327 if (is_array($data))
328 {
329 // Load the data locally
SYSPATH/classes/Kohana/Session.php [ 125 ] » Kohana_Session->read(arguments)
MODPATH/database/classes/Kohana/Session/Database.php [ 74 ] » Kohana_Session->__construct(arguments)
SYSPATH/classes/Kohana/Session.php [ 54 ] » Kohana_Session_Database->__construct(arguments)
APPPATH/classes/Controller/Base.php [ 17 ] » Kohana_Session::instance(arguments)
APPPATH/classes/Controller/Index.php [ 9 ] » Controller_Base->before()
SYSPATH/classes/Kohana/Controller.php [ 69 ] » Controller_Index->before()
{PHP internal call} » Kohana_Controller->execute()
SYSPATH/classes/Kohana/Request/Client/Internal.php [ 97 ] » ReflectionMethod->invoke(arguments)
SYSPATH/classes/Kohana/Request/Client.php [ 114 ] » Kohana_Request_Client_Internal->execute_request(arguments)
SYSPATH/classes/Kohana/Request.php [ 997 ] » Kohana_Request_Client->execute(arguments)
DOCROOT/index.php [ 118 ] » Kohana_Request->execute()
with php 5.5需要用到模块melancholy,或者PDO,而不是mysql,嗯,还是关掉这些错误的输出到index.php
在 kohana 的 Session.php 文件的 catch 块中添加一个 var_dump($e) 异常被抛出的地方(就像在您粘贴的代码中一样),您会发现真正的问题;)
首先。 检查 php ini 中的会话保存路径,以及保存会话文件的目录权限。在我的例子中是 /tmp.
转到 /VAR/LOG 并检查 Apache 错误日志。
然后,打开SYSPATH/application/bootstrap。php 查找
Kohana::init(array(
'base_url' => '/',
'index_file' => FALSE,
'errors' => TRUE
));
改为
Kohana::init(array( 'base_url' => '/', 'index_file' => FALSE,
'errors' => FALSE ));
并且您会看到来自您的 php 解释器或 apache 的错误。
如果对您没有帮助。
查找SYSPATH/classes/Kohana/Session.php [324] 并替换它
throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
并将其替换为
throw new Session_Exception('Error reading session data.'. " [SID:".$id."(".$this->id()."), name:".$this->_name."][Details: " . $e . "]\n", NULL, Session_Exception::SESSION_CORRUPT);
你会发现你的错误。 在我的例子中是数据库错误。