Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sesja, a obiekt, czy można obiekt zapisać w sesji ?
arszawin
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2008

Ostrzeżenie: (0%)
-----


  1. $_SESSION[temp] = new Obiekt();
  2. $_SESSION[temp]->metoda();


Czy taki zapis jest poprawny? Nie wiem dlaczego pojawia się błąd:
Cytat
Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;Kupon&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in


Ten post edytował arszawin 9.08.2010, 23:08:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arszawin
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2008

Ostrzeżenie: (0%)
-----


Przyznam, że zrozumienie serializacji sprawia mi trochę problemu.
  1. <?php
  2. require_once("obiekt.php");
  3.  
  4. if ( !isset ( $_SESSION[ob] ) ) {
  5. $_SESSION[ob] = new Obiekt();
  6. }
  7.  
  8. $_SESSION[ob] -> dodajObiekt(1);
  9. echo $_SESSION[ob] -> liczbaObiektow();
  10. ?>

W przypadku, gdy sesja nie istnieje, zostanie ona utworzona i kod wykona się poprawnie. W drugim przypadku - pojawi się błąd, o którym wcześniej wspomniałem. Klasa Obiekt, która jest importowana i której instancja jest przechowywana w sesji bazuje na liście ArrayList, którą sam implementowałem.

Co powinienem serializować, a następnie odserializować, by odczyt obiektu z sesji był poprawny?

Wydawało mi się, że będzie to na wzór tego:
  1. if ( !isset ( $_SESSION[ob] ) ) {
  2. $_SESSION[ob] = serialize ( new Obiekt() );
  3. }
  4.  
  5. $_SESSION[ob] = serialize ( unserialize ( $_SESSION[ob] ) -> dodajObiekt (1) );
  6. echo unserialize ( $_SESSION[ob] ) -> liczbaObiektow();

ale teraz mamy błąd:
Cytat
Fatal error: Call to a member function dodajObiekt() on a non-object in ...


Ten post edytował arszawin 10.08.2010, 14:23:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 20:23