![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem z serializacja, ktorej chcialbym uzyc do przechowywania obiektu i zupelnie nie moge sobie z tym poradzic, a moze nie do konca poprawnie rozumiem jej koncepcje. Problem postaram sie przedstawic mozliwie najbardziej zrozumiale: Mam strone na ktorej pobieram elementy z 'zewnetrznego' magazynu i przechowywuje je w tabeli (dokladniej obiekcie, ktorego jednym z elementow jest tabela). Obiekt w ktorym przechowywuje pobrane elementy posiada metode, ktora weryfikuje czy posiada on wystarczajaco elementow aby moc je wyswietlic na danej stronie, jesli nie to pobiera nastepne z 'zewnetrznego' magazynu. Ilosc kolejnych elementow wyswietlanych na stronie jest uzalezniona od offsetu. Np dla offsetu rownego 0 wyswietlam elementy z tabeli 0 -99; dla 1 -> 100 - 199 itd. I teraz moj problem polega na tym, ze kiedy chce wyswietlic offset 4 to pobieram kolejne elementy i je wyswietlam, a chcac wrocic do offsetu 1 nie robie nic oprocz wyswietlenia, poniewaz elementu juz sa w tablicy tego obiektu(a wiec nie musze ponownie inicjalizowac obiektu i pobieraz od nowa elementow dla wartosi offsetu 1). Do rozwiazania tego problemu zdecydowalem sie uzyc serializacji. I tak moj kod strony wyglada nastepujaco: Kod [php]require_once('magazyn.php'); $offset = $_GET['offset']; if( isset( $_SESSION['magazyn'] ) ){ $magazyn = unserialize($_SESSION['magazyn']); } else { session_start(); $magazyn= new Magazine($number, $offset); } if($magazyn->canDisplay($offset) == true){ $magazyn->display(); } else { $magazyn->getElements(); $magazyn->display(); } $_SESSION['magazyn'] = serialize($magazyn); echo "|   <a href=pokaz.php?offset=5>offset5 </a>   "; [/php] I moj problem polega na tym ze po inicjalizacji, kiedy chce wejsc na ta sama strone z offsetem 5, caly czas tworzy obiekt od nowa(nie znajduje zmiennej sesyjnej $_SESSION['magazyn']). Gdzie lezy moj blad w rozumowaniu? pozdrawiam i dziekuje z gory za pomoc Ten post edytował collecter 19.11.2010, 00:47:53 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 1 Dołączył: 23.09.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Bo tej zmiennej nie ma, sprawdzasz $_SESSION['magazyn'] zanim sesja startuje.
Przenieś session_start() z szóstej linijki do około drugiej. Ten post edytował Nix1 19.11.2010, 00:58:06 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 19:56 |