На локальном хосте все хорошо, но при развертывании появляется сообщение об ошибке «Ошибка чтения данных сеанса», когда я пытаюсь вызвать Session :: instance(). Где моя ошибка? Возможно, это проблема с сервером или ошибка Kohana?Ошибка при чтении данных сеанса при попытке «Session :: instance();» в Kohana
ответ
Можете ли вы разместить свой сеанс.php? Установили ли вы ключ шифрования, если используете параметр шифрования? Какой драйвер вы используете для хранения сеанса (файла, файла cookie, базы данных)?
Если вы используете базу данных (или ORM) для сеансов, тогда «Ошибка чтения данных сеанса» обычно означает, что Kohana не может подключиться к базе данных. Убедитесь, что вы можете подключиться к базе данных.
Если вы используете файлы для сеансов, то проверьте папку, в которой записи на PHP пишутся.
В моем случае это проблема с сервером. Вчера у меня была аналогичная проблема, и это как я ее решаю.
- первые, установить обработку ошибок ложных (на bootstrap.php, набор ошибки => лжи) для лучшей диагностики
- обновления снова вашего браузера. у меня была ошибка при записи на C: \ xampp \ tmp. Оказывается, моя папка «TMP» не хватает (я не знаю, почему, вероятно, из-за misdeleting плохой привычки мыши)
- создать папку TMP, сделана :)
Кстати, я использую «родной», как Kohana -session обработчик. Для xampp вы можете проверить xampp/apache/conf/extra/httpd-xampp.conf для «SetEnv TMP {ваш tmp dir здесь}». Другой LAMP-стек может меняться.
Моя проблема была в сеансе «native» 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
]
Так что, когда на сервере нет места для файлов хранение МЫСЛИ вы получите thta ошибки «данные сеанса ошибок чтения» Решения сделать некоторое пространство на сервере. В моем случае я просто удаляю несколько очень старых файлов и некоторые файлы журналов.
Я не использую шифрование. Магазин для сеанса является родным (cookie). Проблема решена путем добавления проверки на session_start в классе kohana. if ($ _SESSION) session_start(); Но хорошо? Я не знаю... – Meliborn