0

php をバージョン 4 から 5.5 に更新した後、Kohana 3.3.3 でセッションの動作が停止しました。次を呼び出すと、Session :: instance ('database') というエラーが表示されます:「セッション データの読み取り中にエラーが発生しました。」

何故ですか?

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() 
4

3 に答える 3

1

初めに。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);

そして、あなたのエラーを見つけるでしょう。私の場合、それはデータベースエラーでした。

于 2018-01-06T10:48:15.640 に答える
0

例外がスローされている kohana の Session.php ファイルの catch ブロック内に var_dump($e) を追加します (貼り付けたコードのように)。実際の問題が見つかります;)

于 2015-09-10T13:46:29.170 に答える