![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 "Kupon" 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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przyznam, że zrozumienie serializacji sprawia mi trochę problemu.
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:
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 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
To co miałeś na początku było dobre. Problem polega na tym, że próba odserializowania ciągu w innym skrypcie nie powiodła się ponieważ plik z potrzebną klasą nie został dołączony do skryptu.
Przykład
Drugi skrypt
Zadziała już ok. Można z tego problemu wybrnąć poprzez stosowanie autoloaderów. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat To co miałeś na początku było dobre Masz na myśli ten kod?
Napisałeś, że przyczyną problemów jest to, że plik z potrzebną klasą nie został dołączony do skryptu. Chyba jednak nie rozumiem - w trzeciej linijce mamy przecież require_once("obiekt.php");. Problem jest, gdy do sesji przypisany jest już jakiś obiekt klasy Obiekt - wtedy faktycznie jest jakiś problem z odczytem tego obiektu. Pawel_W w pierwszym poście zasugerował użycie serialize(), Ty wspomniałeś o autoloaderze(?) - teraz już nie wiem, co muszę zrobić, by wyeliminować błąd i liczbaObiektów przy każdym odświeżeniu była poprawnie inkrementowana;) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1)
2) Jaki masz błąd? 3)
Ten post edytował wookieb 10.08.2010, 15:16:23 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 10:13 |