Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kłopoty z serializacją
Forum PHP.pl > Forum > PHP
BugTomek
Stworzyłem obiekt i chcę umieścić go w tablicy sesji ($_SESSION, żeby była jasność).
Obiekt wygląda w ten sposób:
Kod
lang Object
(
    [id] => 1
    [name] => Polski
    [short_name] => pl
    [is_default] => 1
)

Serializuje i zapisuje do sesji:
  1. <?php
  2. $_SESSION['lang'] = serialize($lang);
  3. ?>

Zaraz potem, daję
  1. <?php
  2. print_r($_SESSION['lang'])
  3. ?>

co daje spodziewany efekt:
Kod
O:4:"lang":4:{s:2:"id";s:1:"1";s:4:"name";s:6:"Polski";s:10:"short_name";s:2:"pl";s:10:"is_default";s:1:"1";}

Teraz najważniejsze, odświeżam stronę, tudzież przechodzę na inną, pozostając w tej samej sesji.
print_r tablicy sesji i co?
Kod
Array
(
    [site_adres] => /index.php?
    [lang] =>
)

$SESSION['lang'] raczyło zniknąć, inne zmienne sesji są na swoim miejscu, ktoś wie gdzie tkwi przyczyna?
dr_bonzo
Jak chcesz umiescic obiekt w sesji to go nie serializuj recznie -- tylko go przypisz do $_SESSION[ 'jakisobiekt' ] = $jakisobiekt;
BugTomek
Pomogło, choć zupełnie nie wiem czemu poprzednio nie działało - wydaje się to mieć jakiś związek z konfiguracją serwera, bo lokalnie wszystko jest jak należy. A na serwerze działo się np. takie coś:
  1. <?php
  2. print_r($_SESSION);
  3. print_r($_SESSION['lang']);
  4. ?>

dało następujący rezultat:
Kod
Array
(
    [lang] =>O:4:"lang":4:{s:2:"id";s:1:"1";s:4:"name";s:6:"Polski";s:10:"short_name";s:2:"pl";s:10:"is_default";s:1:"1";}
)

lang Object
(
   [id] => 1
   [name] => Polski
   [short_name] => pl
   [is_default] => 1
)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.