Почему не сеанс Kohana 3.3?

После обновления 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()

0

Решение

Прежде всего.
проверьте путь сохранения сеанса в 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);

И вы узнаете свою ошибку.
В моем случае это была ошибка базы данных.

1

Другие решения

с php 5.5 нужно использовать модуль меланхолии, или PDO, вместо mysql, ну или просто отключить вывод этих ошибок в index.php

http://webnotes.by/docs/php/kohana-3-2-and-php-5-5

0

Добавьте переменную var_dump ($ e) в блок catch в файле Session.php коаны, где создается исключение (как в вставленном вами коде), и вы найдете настоящую проблему;)

0
По вопросам рекламы [email protected]