尝试" Session :: instance();"时读取会话数据时出错在Kohana

时间:2012-05-06 19:45:50

标签: session kohana kohana-3

在localhost上一切都很好,但在部署时,当我尝试调用Session :: instance()时,会出现错误“读取会话数据时出错”。我的错误在哪里? 也许是服务器问题或Kohana bug?

4 个答案:

答案 0 :(得分:2)

在我的情况下,它是一个服务器问题。昨天我遇到了类似的问题,这是我如何解决的。

  • 首先,将错误处理设置为false(在bootstrap.php上,设置error => false)以便更好地进行诊断
  • 再次刷新您的浏览器。我在C:\ xampp \ tmp上写错了。事实证明我的“tmp”文件夹丢失了(我不知道为什么,可能因为不良的鼠标习惯而误导)
  • 创建tmp文件夹,完成:)
不过,我正在使用'native'作为kohana会话处理程序。 对于xampp,您可以在xampp / apache / conf / extra / httpd-xampp.conf上查看“SetEnv TMP {your tmp dir here}”。其他LAMP堆栈可能会有所不同。

答案 1 :(得分:1)

你可以发布你的session.php吗?如果您使用加密选项,是否设置了加密密钥?您使用什么驱动程序来存储会话(文件,cookie,数据库)?

答案 2 :(得分:0)

如果您正在使用数据库(或ORM)进行会话,那么“读取会话数据时出错”通常意味着Kohana无法连接到数据库。检查您是否可以连接到数据库。

如果您正在使用会话文件,请检查PHP写会话的文件夹是否可写。

答案 3 :(得分:0)

我的问题是在会话'本地'kohana 3.3。我得到了错误读取会话数据和破碎的数据或其他东西。当我检查来自$_SESSION数组的任何数据时,例如echo $_SESSION['x']我需要这个价值,为什么这会告诉我错误阅读?

错误显示在行上:$session = Session::instance(); 我尝试了很多解决方案(例如php.ini)但没有成功。 我的第一个解决方案是:

try{
$session = Session::instance();
}
catch (Exception $e){//do sth. eg. restrt sesion etc..}

但这是一个糟糕的解决方案,因为几个月后问题又回到了另一台服务器上。 我收到消息Database_Exception [1030]:从存储引擎得到错误28 ... 或Database_Exception [126]:表'/ramdisk/mysql/tmp/#sql_138c_2.MYI'的密钥文件不正确;尝试修复它[从tabe显示完整列]

因此,当您的服务器上没有mysl存储文件的空间时,您会收到错误“读取会话数据时出错” 解决方案是在服务器上腾出一些空间。在我的情况下,我只删除一些非常旧的文件和一些日志文件。