Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]serializacja problem
collecter
post 19.11.2010, 00:38:50
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 "| &nbsp <a href=pokaz.php?offset=5>offset5 </a> &nbsp ";

[/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
Go to the top of the page
+Quote Post
Nix1
post 19.11.2010, 00:57:44
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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 19:56