![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 89 Pomógł: 5 Dołączył: 23.10.2006 Skąd: Gda?sk Ostrzeżenie: (0%) ![]() ![]() |
Witam!
W pliku main.php mam cos takiego: session_start(); session_register('produkty'); include 'klasy.inc'; ... $produkty to tablica do ktorej ladowane sa obiekty klasy Produkty, ktorych pola sa pobierane z plikow .csv Na tej stronie nie ma z obiektami zadnego problemu i np. taki kod dziala:
na kolejnej stronie pokazProdukt.php mam cos takiego:
do petli program wchodzi tylko raz, mimo ze $count=5, czyli wysypuje sie na linii
Po wywolaniu na tej stronie polecenia
dostaje cos takiego: __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => Produkt /i tutaj wypisana zawartosc tablicy/ Wie ktos jak to poprawic?? bo z tego co czytalem moze to byc problem z zainkludowaniem pliku 'klasy.inc', ale ja to include mam obudowane i nie zwraca zadnego bledu wiec raczej powinno byc w porzadku... I jeszcze: pisze pod php5 Ten post edytował abusiek 5.01.2007, 22:51:38 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 416 Pomógł: 0 Dołączył: 8.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie pokazales calego kodu wiec nie wiem w jaki sposob dodajesz produkty do zmiennej sesyjnej. W kazdym razie, zamiast session_register" title="Zobacz w manualu php" target="_manual powinienes korzystac z $_SESSION - doczytaj w manualu dlaczego. Natomiast gdy chcesz zapisac obiekt w zmiennej sesyjnej musisz skorzystac z serialize" title="Zobacz w manualu php" target="_manual a przed odczytem unserialize." title="Zobacz w manualu php" target="_manual
I jeszcze jeden blad - literowka zapewne - nie $echo a echo ![]() Edit: Blad lezy jednak chyba gdzie indziej. Include'uj 'klasy.inc' przed session_start" title="Zobacz w manualu php" target="_manual. Ten post edytował ikioloak 5.01.2007, 23:09:00 |
|
|
![]()
Post
#3
|
|
![]() Administrator wortalu Grupa: Przyjaciele php.pl Postów: 960 Pomógł: 39 Dołączył: 21.10.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Natomiast gdy chcesz zapisac obiekt w zmiennej sesyjnej musisz skorzystac z serialize a przed odczytem unserialize. Nic nie musi. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 89 Pomógł: 5 Dołączył: 23.10.2006 Skąd: Gda?sk Ostrzeżenie: (0%) ![]() ![]() |
Obiekty dodaje w petli for w sposob najprostszy z mozliwych:
$produkty[] = new Produkt($nazwa); Tak jak pisalem w tym raczej nie tkwi problem poniewaz na stronie main.php wszystkie funkcje zwiazane z elemntami tablicy dzialaja. Piszac pod php5 nie musze uzywac serialize i unserialize poniewaz polecenie session_register('produkty') robi to automatycznie i jak pisalem sama zawartosc tablicy $produkty jest dostepna na stronie pokazProdukt.php, ale nie moge korzystac z funkcji zwiazanych z klasa Produkt, czyli np. nie moge zrobic czegos takiego: $produkty[0]->pokazProdukt();.... solution found!!! plik pokazProdukt.php powinien wygladac tak:
Czyli rozchodzilo sie to, zeby include bylo pierwszym poleceniem w pliku, bo umieszczenie go przed session_register('przystanki') nic nie dawalo. (co jest o tyle dziwne ze we wszelkich manualach do php czytam, ze session_start() musi byc pierwszym poleceniem w pliku) Czasami po prostu nienawidze programowac ![]() Ten post edytował abusiek 5.01.2007, 23:43:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 19:06 |