![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zauważyłem coś bardzo dziwnego, na serwerze znajomego (jeden z tych na linuxpl.com) nie działa serializacja... Plik na którym sprawdzam działanie serializacji:
Bez znaczenia, czy zapiszę go w ANSI czy w UTF-8. Wersja PHP na serwerze znajomego: 5.2.9. Wersja PHP u mnie na localhost: 5.3.0. Wynik uruchomienia pliku na serwerze znajomego: Kod serialized: "s:32:"c9dufa4urcvha1d4i845redp94kqrf7p";" c9dufa4urcvha1d4i845redp94kqrf7p Wynik uruchomienia pliku u mnie na localhost: Kod serialized: "a:8:{s:3:"cos";s:7:"costam1";s:4:"cos2";s:7:"costam2";s:4:"cos3";s:7:"costam3";s:4:"cos4";s:7:"costam4";s:4:"cos5";s:7:"costam5";s:4:"cos6";s:7:"costam6";s:4:"cos7";s:7:"costam7";s:4:"cos8";s:7:"costam8";}" Array ( [cos] => costam1 [cos2] => costam2 [cos3] => costam3 [cos4] => costam4 [cos5] => costam5 [cos6] => costam6 [cos7] => costam7 [cos8] => costam8 ) Dziwne prawda? Wie ktoś czemu tak się dzieje? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Zainicjuj tablicę przed serializacją i sprawdź, czy dzieje się to samo.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
No teraz działa. Tylko dlaczego bez inicjalizacji na jednym serwerze działa a na drugim już nie?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może na tym serwerze, na którym nie działa jest coś ustawione w konfiguracji php.ini dla unserialize_callback_func ?
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdziłem wcześniej wszystkie ustawienia z "serializ" w nazwie - wartości są takie same jak u mnie na localhost, czyli domyślne.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
O ile pamiętam, to w PHP 5.3 odwołania do znaków stringów przez klamry są oznaczone jako zaniechane i należy stosować nawiasy kwadratowe. W 5.3 dochodzi pewnie do niejawnego rzutowania nieistniejącej zmiennej na string (w przypadku odwoływania przez nawiasy), co powoduje sytuację przez Ciebie opisaną. Jeśli zainicjujesz zmienną jako tablicę, nie dojdzie do rzutowania i zserializowanie nastąpi prawidłowo.
Podejrzewam, że potwierdzeniem mojej tezy będzie wywołanie var_dump na tej zmiennej. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
var_dump zwracało coś w stylu "string(32):" (nie chce mi się teraz sprawdzać) więc trafiłeś ze swoją teorią, tyle, że opisujesz przypadek wystąpienia tego na PHP 5.3, natomiast ja miałem problem na PHP 5.2.9
![]() Chyba, że to ja Cie źle zrozumiałem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:01 |