[SOLVED][PHP][Kohana Framework 3.3]: Error reading session data when try "Session::instance();"


Wyjątkowo nie będę pisał tego tekstu po angielsku, ponieważ jest bardzo dużo różnych dziwnych rozwiązań w tym języku ale żadne nie zadziałało In My Case.

Dane:
Podczas wykonywania czynności obsługi sesji w bazie postępując zgodnie z VideoTutorialem natknąłem się na pewien problem, poważny problem dotyczący sessji bazodanowej, jak w tytule: "Error reading session data".
źródło: http://tomaszslazok.pl/2011/09/kohana-3-2-a-exception-w-session/

Powyżej umieściłem screen błędu jaki pojawił się po ustawieniu Session::$default = 'database'; IMC (InMyCase) było to w innej linii ale ten sam błąd:


Spędziłem bardzo dużo czasu czytając rozwiązania w sieci i próbójąc je szybko realizować, a że była noc to zmęczenie dało znać. Dziś na świerzy umysł przejrzałem kilka rozwiązań w interecie, które były lepsze, i miałem czas na dokładne ich przeczytanie. Okazało się tak jak napisano w jednej ze stron:http://tomaszslazok.pl/2011/09/kohana-3-2-a-exception-w-session/

Rozwiązanie:

Zasugerowałem się podpowiedzią dotyczącą tego aby szczegóły błędu wyświetlić, bo kohana nie daje pełnej informacji o błędzie. Tak też uczyniłem...

listing 1.1. W pliku: kohana/system/classes/Kohana/Session.php
  catch (Exception $e)
  {
   // Error reading the session, usually a corrupt session.
   throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
  }
Dodałem informację o błędzie poprzez konkatenacje stringów (za pomocą operatora konkatenacji) sposób przedstawiam poniżej:

listing 1.2. W pliku: kohana/system/classes/Kohana/Session.php
  catch (Exception $e)
  {
   // Error reading the session, usually a corrupt session.
   throw new Session_Exception('Error reading session data.' . " [Details: " . $e . " ]", NULL, Session_Exception::SESSION_CORRUPT);
  }
Dzięki temu uzyskałem precyzyjniejszy komunikat gdzie leży błąd:

Wystarczyło na to by stwierdzić, że metoda mysql_connect(); jest metodą pochodzącą z PHP a w wersji PHP 5.5 ta metoda została oznaczona jako Deprecated, i na dodatek wywołuje błąd Deprecated Error, który powoduje taki właśnie błąd we Frameworku Kohana. No cóż... Nie można mieć wszystkiego co najnowsze, bo pierszy przychodzi język a potem ludzie dostosowują frameworki...

Co zalecam? 

Instalacje kolejnej starszej wersji PHP w wersji 5.4.x w której to nie będzie ten bład występował dla Kohana Framework 3.3;

Jako, że korzystam z systemu Gentoo, nie miałem problemów z instalacją obok najnowszej wersji wersji nie co starszej.

listing 2.1. W konsoli:
root@localhost : emerge -av =dev-lang/php-5.4.17
...
root@localhost : eselect php set apache2 1 // ustawiam starszą wersję PHP
...
root@localhost : /etc/init.d/apache2 restart


Brak komentarzy:

Publikowanie komentarza