2012-05-06 188 views

回答

1

你可以發佈你的session.php嗎?如果您使用加密選項,您是否設置了加密密鑰?你用什麼驅動程序來存儲會話(文件,cookie,數據庫)?

+0

我不使用加密。會話的商店是本地(cookie)。通過在kohana類中添加檢查到session_start解決了問題。 if($ _SESSION)session_start();但是很好嗎?我不知道... – Meliborn

0

如果您使用數據庫(或ORM)進行會話,那麼「錯誤讀取會話數據」通常意味着Kohana無法連接到數據庫。檢查您是否可以連接到數據庫。

如果您正在使用會話文件,請檢查PHP寫入會話的文件夾是否可寫。

+0

參見上一個答案。 – Meliborn

+0

以前的答案是什麼? –

+0

我不使用加密。會話的商店是本地(cookie)。通過在kohana類中添加檢查到session_start解決了問題。 if($ _SESSION)session_start();但是很好嗎?我不知道.. – Meliborn

2

在我的情況下,它的服務器問題。我昨天有類似的問題,這是我如何解決它。

  • 第一,設置錯誤處理錯誤(在bootstrap.php中,設置錯誤=>假)爲更好地診斷再次
  • 刷新瀏覽器。我在C:\ xampp \ tmp上寫錯了。事實證明,我的「TMP」的文件夾不見了(我不知道爲什麼,可能是由於misdeleting壞習慣鼠標)
  • 創建TMP文件夾中,做了:)

順便說一句,我使用的「本土」爲Kohana的 - 會話處理程序。 對於xampp,您可以檢查xampp/apache/conf/extra/httpd-xampp.conf中的「SetEnv TMP {您的tmp目錄}」。其他LAMP堆棧可能會有所不同。

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'的錯誤密鑰文件;嘗試修復它[SHOW FULL COLUMNS FROM tabe]

所以,當您的服務器上存在的思想報存儲文件中沒有空間,你thta錯誤「錯誤讀取會話數據」 的解決方案是讓服務器上的一些空間。在我的情況下,我只刪除了幾個非常舊的文件和一些日誌文件。